#metrics #statsd #environment #seconds #daemon #numbers #date

app countdown-metrics-rs

一个守护进程,将给定日期前的秒数发布到 statsd 汇聚器

2 个稳定版本

1.2.0 2023年4月20日
1.1.1 2023年4月20日

#12 in #seconds

MIT 许可协议

17KB
212

倒计时指标

一个守护进程,将给定日期前的秒数发布到 statsd 汇聚器。

配置

守护进程通过环境变量进行配置

  • ENV_PREFIX:环境变量的前缀。默认为 COUNTDOWNS_
  • INTERVAL:发布指标之间的秒数。默认为 10
  • STATSD_HOST:发布指标的宿主机。默认为 127.0.0.1:8125
  • METRIC_PREFIX:用于指标的默认前缀。默认为空。
  • METRIC_TAGS:要添加到所有指标中的标签的逗号分隔列表。默认为空。
  • COUNTDOWN_KEY:倒计时指标名称。默认为 countdown
  • COUNTDOWN_ID:倒计时指标标签名称。默认为 name
  • HEARTBEAT_METRIC:心跳指标名称。默认为 heartbeat

要监视的指标通过以 ENV_PREFIX 环境变量值为前缀的环境变量读取。环境变量的值应采用 YYYY-MM-DDTHH:MM:SSZ 格式的日期。前缀将被移除,剩余文本用作指标名称。

例如,考虑以下环境变量

ENV_PREFIX=SURGE
METRIC_PREFIX=wildmagic_rocks
SURGE_FOO="2024-01-01T14:00:00-04:00"
WATCH_THIS_BAR="2024-01-01T14:00:00-04:00"

上述环境变量将导致一个名为 wildmagic_rocks.foo 的指标,其值为从当前日期到 2024-01-01T14:00:00-04:00 的时间(以秒为单位)的数值,并且每10秒发布一次。名为 name 的标签的值为 foo。环境变量 WATCH_THIS_BAR 将被忽略,因为它既不是配置环境变量之一,也没有由 ENV_PREFIX 环境变量定义的前缀 SURGE

示例

首先启动一个假 statsd 源

$ nc -u -l -p 8125

然后运行守护进程并使用示例指标

$ COUNTDOWNS_FOO="2024-01-01T14:00:00-04:00" cargo run

您将看到以默认值发布的指标

countdown:22192887|g|#name:foo
heatbeat:1681939112|g
countdown:22192877|g|#name:foo
heatbeat:1681939122|g
countdown:22192867|g|#name:foo
heatbeat:1681939132|g

全局标签

当运行时

$ METRIC_TAGS="DD_SERVICE=cntdwn,DD_VERSION=1.2.0" COUNTDOWNS_FOO="2024-01-01T14:00:00-04:00" cargo run

您将得到

countdown:22132947|g|#DD_SERVICE:cntdwn,DD_VERSION:1.2.0,name:foo
heatbeat:1681999052|g|#DD_SERVICE:cntdwn,DD_VERSION:1.2.0

用法

使用此功能来监视您的资源。

可以使用类似以下方式部署它

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cntdwn
  labels:
    app: cntdwn
spec:
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      app: cntdwn
  template:
    metadata:
      labels:
        app: cntdwn
    spec:
      containers:
        - name: app
          image: ngerakines/countdown-metrics:v1.2.0
          env:
            - name: COUNTDOWNS_SITE_CERT
              value: "2024-01-01T14:00:00-04:00"
            - name: COUNTDOWNS_TS_KEY_DC1
              value: "2024-02-01T14:00:00-04:00"

然后在您的可观测性堆栈中创建一个监控器,当指标的值小于345600(4天)或950400(11天)时发出警报。

依赖关系

~10–20MB
~239K SLoC