BeryJu / linode-exporter

Golang Prometheus Exporter for Linode metrics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

build Go Reference Go Report Card

Inspired by and templated from DigitalOcean Exporter.

Thanks metalmatze!

References

Development Installation

go get github.com/DazWilkin/linode-exporter

Then:

LINODE_TOKEN=[[YOUR-LINODE-API-TOKEN]]
ENDPOINT=":9388"
METRICS="/metrics"

go run github.com/DazWilkin/linode-exporter \
--endpoint=${ENDPOINT} \
--path=${METRICS}

Run-only Installation

Linode Exporter only

Either:

LINODE_TOKEN=[[LINODE-API-TOKEN]]
PORT=9388
docker run \
--interactive \
--tty \
-e LINODE_TOKEN=${LINODE_TOKEN} \
--publish=${PORT}:${PORT} \
ghcr.io/dazwilkin/linode-exporter:d2e91f21788330627a7e0d6ab1d3a43f2b924c61

The exporter's metrics endpoint will be available on http://localhost:${PORT}/metrics

Linode Exporter with Prometheus, AlertManager and cAdvisor

NB AlertManager integration is a work-in-progress

The following

LINODE_TOKEN=[[LINODE-API-TOKEN]]
docker-compose --file=${PWD}/docker-compose.yaml up

You may check the state of the services using:

docker-compose ps

And logs for a specific service using, e.g.:

docker-compose logs linode-exporter

The following endpoints are exposed:

  • Linode-Exporter metrics: http://localhost:9388/metrics
  • Prometheus UI: http://localhost:9090
  • AlertManager UI: http://localhost:9093
  • cAdvisor UI: http://localhost:8085

NB cAdvisor is mapped to :8085 rather than it's default port :8080

Using the Prometheus UI, you may begin querying metrics by typing linode_ to see the available set.

The full list is below.

Metrics

Name Type Description
linode_account_balance Gauge
linode_account_uninvoiced Gauge
linode_exporter_up Counter A metric with a constant value of '1' labeled with go, OS and the exporter versions
linode_instance_up Counter
linode_instance_disk Gauge
linode_instance_memory Gauge
linode_instance_cpus Gauge
linode_kubernetes_up Counter
linode_kubernetes_pool Counter
linode_kubernetes_linode_up Counter
linode_nodebalancer_count Gauge
linode_nodebalancer_transfer_total_bytes Gauge
linode_nodebalancer_transfer_out_bytes Gauge
linode_nodebalancer_transfer_in_bytes Gauge
linode_volume_up Counter
linode_tickets_count Gauge

Please file issues and feature requests

Development

Each 'collector' is defined under /collectors/[name].go.

Collectors are instantiated by main.go with registry.MustRegister(NewSomethingCollector(linodeClient))

The [name].go collector implements Prometheus' Collector interface: Collect and Describe

Documentation

https://godoc.org/github.com/DazWilkin/linode-exporter/collector

Port Allocation

Registered "Linode Exporter" on Prometheus Wiki's Default Port Allocations with port 9388.

Sigstore

linode-exporter container images are being signed by Sigstore and may be verified:

cosign verify \
--key=./cosign.pub \
ghcr.io/dazwilkin/linode-exporter:d2e91f21788330627a7e0d6ab1d3a43f2b924c61

NOTE cosign.pub may be downloaded from here

To install|update cosign:

go install github.com/sigstore/cosign/cmd/cosign@latest

Similar Exporters



Buy Me A Coffee

About

Golang Prometheus Exporter for Linode metrics

License:Apache License 2.0


Languages

Language:Go 95.4%Language:Dockerfile 2.6%Language:Shell 2.1%