Add info metric and prep release

This commit is contained in:
Håvard O. Nordstrand 2020-06-29 13:39:10 +02:00
parent 213d2e05b5
commit c39632d9a1
5 changed files with 55 additions and 9 deletions

21
CHANGELOG.md Normal file
View File

@ -0,0 +1,21 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security
## [1.0.0] - 2020-06-29

View File

@ -1,14 +1,25 @@
# Prometheus ESP8266 DHT Exporter # Prometheus ESP8266 DHT Exporter
[![GitHub release](https://img.shields.io/github/v/release/HON95/prometheus-esp8266-dht-exporter?label=Version)](https://github.com/HON95/prometheus-esp8266-dht-exporter/releases)
A Prometheus exporter for IoT temperature and humidity measurements, using an ESP8266 (Arduino-compatible) with a Wi-Fi module and a DHT (temperature + humidity) sensor. A Prometheus exporter for IoT temperature and humidity measurements, using an ESP8266 (Arduino-compatible) with a Wi-Fi module and a DHT (temperature + humidity) sensor.
## Metrics
| Metric | Description | Unit |
| - | - | - |
| iot_info | Metadata about the device. | |
| iot_air_humidity_percent | Air humidity. | `%` |
| iot_air_temperature_celsius | Air temperature. | `°C` |
| iot_air_heat_index_celsius | Apparent air temperature, based on temperature and humidity. | `°C` |
## Hardware ## Hardware
ESP8266 board: [WEMOS D1 Mini](https://wiki.wemos.cc/products:d1:d1_mini) (ESP8266) ESP8266-based board: [WEMOS D1 Mini](https://wiki.wemos.cc/products:d1:d1_mini)
DHT sensor: [Wemos DHT Shield](https://wiki.wemos.cc/products:retired:dht_shield_v1.0.0) (DHT11) DHT sensor: [Wemos DHT Shield](https://wiki.wemos.cc/products:retired:dht_shield_v1.0.0) (DHT11)
## Requirements ## Software
- [Arduino IDE](https://www.arduino.cc/en/Main/Software) - [Arduino IDE](https://www.arduino.cc/en/Main/Software)
- Download and install. - Download and install.
@ -27,10 +38,12 @@ This uses the Arduino IDE.
- WEMOS D1 Mini uses board "WeMoS D1 R2 & mini". - WEMOS D1 Mini uses board "WeMoS D1 R2 & mini".
1. Build and upload using the Arduino IDE. 1. Build and upload using the Arduino IDE.
## Metrics ## Version
| Metric | Description | Unit | See `src/version.h`.
| - | - | - |
| iot_air_humidity_percent | Air humidity. | `%` | It's set manually since no build tools (or CI) other than the Arduino IDE is used.
| iot_air_temperature_celsius | Air temperature. | `°C` |
| iot_air_heat_index_celsius | Apparent air temperature, based on temperature and humidity. | `°C` | ## License
GNU General Public License version 3 (GPLv3).

View File

@ -2,6 +2,10 @@
// Debug mode is enabled if not zero // Debug mode is enabled if not zero
#define DEBUG_MODE 0 #define DEBUG_MODE 0
// Board name
#define BOARD_NAME "ESP8266"
// DHT sensor name (should be the same)
#define DHT_NAME "DHT11"
// DHT sensor type // DHT sensor type
#define DHT_TYPE DHT11 #define DHT_TYPE DHT11
// DHT pin // DHT pin

View File

@ -4,6 +4,7 @@
#include <DHTesp.h> #include <DHTesp.h>
#include "config.h" #include "config.h"
#include "version.h"
enum LogLevel { enum LogLevel {
DEBUG, DEBUG,
@ -88,6 +89,10 @@ void handle_http_home_client() {
void handle_http_metrics_client() { void handle_http_metrics_client() {
static size_t const BUFSIZE = 1024; static size_t const BUFSIZE = 1024;
static char const *response_template = static char const *response_template =
"# HELP iot_info Metadata about the device.\n"
"# TYPE iot_info gauge\n"
"# UNIT iot_info \n"
"iot_info{version=\"%s\",board=\"%s\",sensor=\"%s\"} 1\n"
"# HELP iot_air_humidity_percent Air humidity.\n" "# HELP iot_air_humidity_percent Air humidity.\n"
"# TYPE iot_air_humidity_percent gauge\n" "# TYPE iot_air_humidity_percent gauge\n"
"# UNIT iot_air_humidity_percent %%\n" "# UNIT iot_air_humidity_percent %%\n"
@ -108,7 +113,7 @@ void handle_http_metrics_client() {
} }
char response[BUFSIZE]; char response[BUFSIZE];
snprintf(response, BUFSIZE, response_template, humidity, temperature, heat_index); snprintf(response, BUFSIZE, response_template, VERSION, BOARD_NAME, DHT_NAME, humidity, temperature, heat_index);
http_server.send(200, "text/plain; charset=utf-8", response); http_server.send(200, "text/plain; charset=utf-8", response);
} }

3
src/version.h Normal file
View File

@ -0,0 +1,3 @@
#pragma once
#define VERSION "1.0.0"