Inspired by and templated from DigitalOcean Exporter.
Thanks metalmatze!
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}
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:b775c09c2d7dca994fccfb662f0b347864d21d30
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.
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_objectstorage_objects_count |
Gauge | |
linode_objectstorage_size_bytes |
Gauge | |
linode_volume_up |
Counter | |
linode_tickets_count |
Gauge |
Please file issues and feature requests
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
https://godoc.org/github.com/DazWilkin/linode-exporter/collector
Registered "Linode Exporter" on Prometheus Wiki's Default Port Allocations with port 9388.
linode-exporter
container images are being signed by Sigstore and may be verified:
cosign verify \
--key=./cosign.pub \
ghcr.io/dazwilkin/linode-exporter:b775c09c2d7dca994fccfb662f0b347864d21d30
NOTE
cosign.pub
may be downloaded from here
To install|update cosign
:
go install github.com/sigstore/cosign/cmd/cosign@latest
- Prometheus Exporter for Azure
- Prometheus Exporter for Fly.io
- Prometheus Exporter for GCP
- Prometheus Exporter for Koyeb
- Prometheus Exporter for Vultr