{"id":16799634,"url":"https://github.com/tomplus/airly-exporter","last_synced_at":"2025-07-03T08:36:53.435Z","repository":{"id":66171628,"uuid":"141194747","full_name":"tomplus/airly-exporter","owner":"tomplus","description":"Airly Exporter for Prometheus","archived":false,"fork":false,"pushed_at":"2024-09-03T20:32:40.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T04:47:03.046Z","etag":null,"topics":["airly","golang","metrics","monitoring","prometheus"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tomplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-07-16T21:09:14.000Z","updated_at":"2024-09-03T20:32:38.000Z","dependencies_parsed_at":"2024-02-15T23:53:22.592Z","dependency_job_id":null,"html_url":"https://github.com/tomplus/airly-exporter","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tomplus/airly-exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomplus%2Fairly-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomplus%2Fairly-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomplus%2Fairly-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomplus%2Fairly-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomplus","download_url":"https://codeload.github.com/tomplus/airly-exporter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomplus%2Fairly-exporter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263291490,"owners_count":23443771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airly","golang","metrics","monitoring","prometheus"],"created_at":"2024-10-13T09:29:21.861Z","updated_at":"2025-07-03T08:36:53.404Z","avatar_url":"https://github.com/tomplus.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Airly-exporter\n\n[![Build Status](https://travis-ci.org/tomplus/airly-exporter.svg?branch=master)](https://travis-ci.org/tomplus/airly-exporter)\n[![Go Report Card](https://goreportcard.com/badge/github.com/tomplus/airly-exporter)](https://goreportcard.com/report/github.com/tomplus/airly-exporter)\n\nAirly-exporter for Prometheus.\n\n## Overview\n\nAirl-exporter is a server which scrapes metrics from [Airly](https://airly.eu/) and exposes them in Prometheus format. You can use\nPrometheus server to scrape metrics and visualize them.\n\n## Access to the Airly API\n\nAn API Key is required to query Airly API. You can get it for free after registration at airly.eu.\nYou have to know that free API token is limited to 1000 requests per day and 50 requests per minute, so\nset reasonable value for the `refresh-interval` parameter.\n\nAirly-exporter uses Airly API 2.0.\n\nMore info: [developer.airly.eu](https://developer.airly.eu/docs)\n\n## Configuration\n\nAirly-exporter requires parameters which can be passed via the command line, enviroment variables or a configuration file.\n\nAvailable arguments as flags:\n\n```\nUsage of airly-exporter:\n  -api-key string\n    \tYour key for Airly API\n  -api-url string\n    \tAirly API endpoint (default \"https://airapi.airly.eu\")\n  -config-file string\n    \tPath to the config file (format: flag=value\\n).\n  -listen-address string\n    \tthe address to listen on for http requests. (default \":8080\")\n  -refresh-interval string\n    \tRefresh sensor interval with units (default \"5m\")\n  -sensors string\n    \tComma separated sensors IDs (default \"204,822\")\n```\n\nwhich can be replaced by enviroment variables `API_KEY`, `API_URL` etc. You can also provide configuration\nvia a configuration file.\n\n```\nlisten-address=9090\nrefresh-interval=5m\nsensors=204,822\n```\n\nAirl-exporter watches the configuration file and applies changes related to the `sensors` on the fly.\n\nTo get your favourite sensors IDs use Airly map, find an interesting sensor and click to see details. Sensor ID\nwill appear in the url (`...\u0026id=1015`).\n\n## Installing and running\n\nYou can use Docker to start airly-exporter:\n\n```\ndocker pull tpimages/airly-exporter:latest\ndocker run --rm -e API_KEY=my-api-key -p 8080:8080 tpimages/airly-exporter:latest\n```\n\nand metrics are exposed via http://localhost:8080/metrics\n\nAlternatively you can install this using `go`:\n\n```go get github.com/tomplus/airly-exporter```\n\nor download binary file from [airly-exporter/releases](https://github.com/tomplus/airly-exporter/releases).\n\n## Running on Kubernetes cluster with Prometheus Operator\n\nThe repository contains example manifests to deploy Airly-exporter to Kubernetes with\n[Prometheus Operator](https://github.com/coreos/prometheus-operator) installed. There are manifests\nfor creating Deployment, Service and Service Monitor.\n\n## List of exposed metrics:\n\n```\n# HELP airly_count_total Total number of performed check\n# TYPE airly_count_total counter\nairly_count_total 2\n# HELP airly_errors_total Total number of errors\n# TYPE airly_errors_total counter\nairly_errors_total 0\n# HELP airly_index Air Quality Index\n# TYPE airly_index gauge\nairly_index{name=\"AIRLY_CAQI\",sensor=\"204\"} 76.68\nairly_index{name=\"AIRLY_CAQI\",sensor=\"822\"} 27\n# HELP airly_request_duration_seconds Histogram of request duration\n# TYPE airly_request_duration_seconds histogram\nairly_request_duration_seconds_bucket{le=\"0.005\"} 0\nairly_request_duration_seconds_bucket{le=\"0.01\"} 0\nairly_request_duration_seconds_bucket{le=\"0.025\"} 0\nairly_request_duration_seconds_bucket{le=\"0.05\"} 0\nairly_request_duration_seconds_bucket{le=\"0.1\"} 0\nairly_request_duration_seconds_bucket{le=\"0.25\"} 0\nairly_request_duration_seconds_bucket{le=\"0.5\"} 0\nairly_request_duration_seconds_bucket{le=\"1\"} 2\nairly_request_duration_seconds_bucket{le=\"2.5\"} 2\nairly_request_duration_seconds_bucket{le=\"5\"} 2\nairly_request_duration_seconds_bucket{le=\"10\"} 2\nairly_request_duration_seconds_bucket{le=\"+Inf\"} 2\nairly_request_duration_seconds_sum 1.381165496\nairly_request_duration_seconds_count 2\n# HELP airly_response_code Response code from Airly API\n# TYPE airly_response_code counter\nairly_response_code{code=\"200\"} 2\n# HELP airly_standard Concentration value of a given pollutant expressed as a percentage of this concentration in the WHO standard\n# TYPE airly_standard gauge\nairly_standard{name=\"WHO\",pollutant=\"PM10\",sensor=\"204\"} 192.07\nairly_standard{name=\"WHO\",pollutant=\"PM10\",sensor=\"822\"} 46.68\nairly_standard{name=\"WHO\",pollutant=\"PM25\",sensor=\"204\"} 230.71\nairly_standard{name=\"WHO\",pollutant=\"PM25\",sensor=\"822\"} 64.79\n# HELP airly_value Values of the given measurement type\n# TYPE airly_value gauge\nairly_value{name=\"HUMIDITY\",sensor=\"204\"} 87.69\nairly_value{name=\"HUMIDITY\",sensor=\"822\"} 94.57\nairly_value{name=\"PM1\",sensor=\"204\"} 37.21\nairly_value{name=\"PM1\",sensor=\"822\"} 9.98\nairly_value{name=\"PM10\",sensor=\"204\"} 96.04\nairly_value{name=\"PM10\",sensor=\"822\"} 23.34\nairly_value{name=\"PM25\",sensor=\"204\"} 57.68\nairly_value{name=\"PM25\",sensor=\"822\"} 16.2\nairly_value{name=\"PRESSURE\",sensor=\"204\"} 1024.41\nairly_value{name=\"PRESSURE\",sensor=\"822\"} 1028.68\nairly_value{name=\"TEMPERATURE\",sensor=\"204\"} 9.23\nairly_value{name=\"TEMPERATURE\",sensor=\"822\"} 5.81\n```\n\n... plus a bunch of metrics from the prometheus client.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomplus%2Fairly-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomplus%2Fairly-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomplus%2Fairly-exporter/lists"}