Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jangraefen/hcloud-pricing-exporter
A prometheus exporter for the current pricing and costs of your HCloud account
https://github.com/jangraefen/hcloud-pricing-exporter
hcloud hetzner hetzner-cloud prometheus prometheus-exporter prometheus-metrics
Last synced: 3 months ago
JSON representation
A prometheus exporter for the current pricing and costs of your HCloud account
- Host: GitHub
- URL: https://github.com/jangraefen/hcloud-pricing-exporter
- Owner: jangraefen
- License: mit
- Created: 2021-03-05T15:21:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-25T19:08:54.000Z (4 months ago)
- Last Synced: 2024-07-26T21:45:50.193Z (4 months ago)
- Topics: hcloud, hetzner, hetzner-cloud, prometheus, prometheus-exporter, prometheus-metrics
- Language: Go
- Homepage:
- Size: 219 KB
- Stars: 51
- Watchers: 1
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hcloud - hcloud-pricing-exporter
README
# hcloud-pricing-exporter
[![Build Status](https://img.shields.io/github/actions/workflow/status/jangraefen/hcloud-pricing-exporter/build.yaml?branch=main&logo=GitHub)](https://github.com/jangraefen/hcloud-pricing-exporter/actions?query=workflow:Build)
[![PkgGoDev](https://pkg.go.dev/badge/mod/github.com/jangraefen/hcloud-pricing-exporter)](https://pkg.go.dev/mod/github.com/jangraefen/hcloud-pricing-exporter)
[![Go Report Card](https://goreportcard.com/badge/github.com/jangraefen/hcloud-pricing-exporter)](https://goreportcard.com/report/github.com/jangraefen/hcloud-pricing-exporter)
[![Docker Pulls](https://img.shields.io/docker/pulls/jangraefen/hcloud-pricing-exporter)](https://hub.docker.com/r/jangraefen/hcloud-pricing-exporter)
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/hcloud-pricing-exporter)](https://artifacthub.io/packages/search?repo=hcloud-pricing-exporter)A Prometheus exporter that connects to your HCloud account and collects data on your current expenses. The aim is to
make cost of cloud infrastructure more transparent and manageable, especially for private projects.Please note that no guarantees on correctness are made and any financial decisions should be always be based on the
billing and cost functions provided by HCloud itself. Some hourly costs are estimations based on monthly costs, if the
HCloud API does not provide an hourly expense.## Deployment
To run the exporter from the CLI you need to run the following commands:
```shell
# Just run it with the default settings
./hcloud-pricing-exporter -hcloud-token# Get the token from an ENV variable
export HCLOUD_TOKEN=
./hcloud-pricing-exporter# Run the exporter on a different port with another fetch interval
./hcloud-pricing-exporter -port 1234 -fetch-interval 45m
```Alternatively, the exporter can be run by using the provided docker image:
```shell
docker run jangraefen/hcloud-pricing-exporter:latest -e HCLOUD_TOKEN= -p 8080:8080
```If you want to deploy the exporter to a Kubernetes environment, you can use the provided helm chart. Just perform the
following commands:```shell
helm repo add hcloud-pricing-exporter https://jangraefen.github.io/hcloud-pricing-exporter
helm repo update
helm upgrade --install hcloud-pricing-exporter hcloud-pricing-exporter/hcloud-pricing-exporter --version {VERSION}
```## Exported metrics
- `hcloud_pricing_floatingip_hourly{name, location, type}` _(Estimated based on the monthly price)_
- `hcloud_pricing_floatingip_monthly{name, location, type}`
- `hcloud_pricing_loadbalancer_hourly{name, location, type}`
- `hcloud_pricing_loadbalancer_monthly{name, location, type}`
- `hcloud_pricing_primaryip_hourly{name, datacenter, type}`
- `hcloud_pricing_primaryip_monthly{name, datacenter, type}`
- `hcloud_pricing_server_hourly{name, location, type}`
- `hcloud_pricing_server_monthly{name, location, type}`
- `hcloud_pricing_server_backups_hourly{name, location, type}`
- `hcloud_pricing_server_backups_monthly{name, location, type}`
- `hcloud_pricing_server_traffic_hourly{name, location, type}` _(Estimated based on the monthly price)_
- `hcloud_pricing_server_traffic_monthly{name, location, type}`
- `hcloud_pricing_snapshot_hourly{name}` _(Estimated based on the monthly price)_
- `hcloud_pricing_snapshot_monthly{name}`
- `hcloud_pricing_volume_hourly{name, location, bytes}` _(Estimated based on the monthly price)_
- `hcloud_pricing_volume_monthly{name, location, bytes}`Each exported metric can also be enriched with additional labels, coming from the actual labels on the Hetzner resource.
To expose additional labels, use the `-additional-labels label1,label2,...` command line parameter.