#include <haproxy/stream.h>
#include <haproxy/stream_interface.h>
#include <haproxy/task.h>
+#include <haproxy/version.h>
/* Prometheus exporter applet states (appctx->st0) */
enum {
*/
#define PROMEX_MAX_METRIC_LENGTH 512
+/* Some labels for build_info */
+#define PROMEX_VERSION_LABEL "version=\"" HAPROXY_VERSION "\""
+#define PROMEX_BUILDINFO_LABEL PROMEX_VERSION_LABEL
+
/* Matrix used to dump global metrics. Each metric points to the next one to be
* processed or 0 to stop the dump. */
const int promex_global_metrics[INF_TOTAL_FIELDS] = {
- [INF_NAME] = INF_NBTHREAD,
+ [INF_NAME] = INF_BUILD_INFO,
[INF_VERSION] = 0,
[INF_RELEASE_DATE] = 0,
+ [INF_BUILD_INFO] = INF_NBTHREAD,
[INF_NBTHREAD] = INF_NBPROC,
[INF_NBPROC] = INF_PROCESS_NUM,
[INF_PROCESS_NUM] = INF_UPTIME_SEC,
[INF_NAME] = IST("name"),
[INF_VERSION] = IST("version"),
[INF_RELEASE_DATE] = IST("release_date"),
+ [INF_BUILD_INFO] = IST("build_info"),
[INF_NBTHREAD] = IST("nbthread"),
[INF_NBPROC] = IST("nbproc"),
[INF_PROCESS_NUM] = IST("relative_process_id"),
[INF_NAME] = IST("Product name."),
[INF_VERSION] = IST("HAProxy version."),
[INF_RELEASE_DATE] = IST("HAProxy release date."),
+ [INF_BUILD_INFO] = IST("HAProxy build info."),
[INF_NBTHREAD] = IST("Configured number of threads."),
[INF_NBPROC] = IST("Configured number of processes."),
[INF_PROCESS_NUM] = IST("Relative process id, starting at 1."),
[INF_NAME] = IST(""),
[INF_VERSION] = IST(""),
[INF_RELEASE_DATE] = IST(""),
+ [INF_BUILD_INFO] = IST(PROMEX_BUILDINFO_LABEL),
[INF_NBTHREAD] = IST(""),
[INF_NBPROC] = IST(""),
[INF_PROCESS_NUM] = IST(""),
[INF_NAME] = IST("untyped"),
[INF_VERSION] = IST("untyped"),
[INF_RELEASE_DATE] = IST("untyped"),
+ [INF_BUILD_INFO] = IST("gauge"),
[INF_NBTHREAD] = IST("gauge"),
[INF_NBPROC] = IST("gauge"),
[INF_PROCESS_NUM] = IST("gauge"),
#endif
while (appctx->st2 && appctx->st2 < INF_TOTAL_FIELDS) {
switch (appctx->st2) {
+ case INF_BUILD_INFO:
+ metric = mkf_u32(FN_GAUGE, 1);
+ break;
case INF_NBTHREAD:
metric = mkf_u32(FO_CONFIG|FS_SERVICE, global.nbthread);
break;