我们已经发布了fluent-plugin-prometheus

源代码:https://github.com/kazegusuri/fluent-plugin-prometheus
宝石:https://rubygems.org/gems/fluent-plugin-prometheus

Prometheus是一个最近推出的开源监控系统。虽然发布初期有一些人在尝试使用,但现在已经很少听到相关消息了。不过,开发的进展似乎还是顺利的。在日本语中,也有一些关于它的介绍。

    • Prometheus: Go言語で書かれたモニタリングシステム

 

    データ可視化アプリの新星、PrometheusをCentOSにインストールする方法

Prometheus与Graphite类似,可以收集指标并进行图形化和警报等操作。
我们这次制作的fluent-plugin-prometheus是用于在Fluentd中收集指标并与Prometheus进行协作的工具。与之略有不同的是,它不是从Fluentd发送数据到Prometheus,而是从Prometheus获取指标数据到Fluentd。

只是顺便说一下为什么会使用Prometheus,那是因为Kubernetes在系统内部的度量收集中使用了Prometheus。虽然Prometheus本身还有些微妙的地方,但未来可能会更受欢迎。

使用方法

fluent-plugin-prometheus包含了四个插件,并且我会分别对它们进行描述。

普罗米修斯输入插件

这个插件用于设置将通过插件收集的指标传递给Prometheus的端点。必须确保进行设置。

<source>
  type prometheus
</source>

通过这样,您可以LISTEN在端口23231上,以便可以从Prometheus获取指标。

普罗米修斯监控输入插件

这个插件是将Fluentd本身内置的monitor_agent插件信息自动获取并传递给Prometheus。

目前可以获取的是BufferedOutput插件的以下信息。

    • キューの長さ

 

    • 全データサイズ

 

    現在のリトライ数

普罗米修斯输出/筛选插件

这是一个用于收集主要度量的插件,它同时支持输出和过滤功能。使用方式几乎相同。在这里将解释过滤器的使用方法。

<filter message>
  type prometheus

  ## レコード中のfooの値をcounterメトリクスとして収集
  <metric>
    name message_foo_counter                 ## Prometheusのmetric名
    type counter                             ## Prometheusのmetric type
    desc The total number of foo in message. ## Prometheusのmetricの説明文
    key foo                                  ## どのkeyの値を収集するか
    <labels>                                 ## 付与するラベル
      key foo                                ## key=foo でラベルを追加
      data_type ${type}                      ## レコード中のtypeの値をラベルの値として利用
    </labels>
  </metric>

  ## レコード中のbarの値をcounterメトリクスとして収集
  <metric>
    name message_bar_counter
    type counter
    desc The total number of bar in message.
    key bar
    <labels>
      key foo
    </labels>
  </metric>

  ## 2つのメトリクスの共通のラベル
  <labels>
    host ${hostname}
    tag ${tag}
  </labels>
</filter>

<match message>
  type stdout
</match>

只需添加一个过滤器以在需要收集指标的记录中进行处理。过滤器插件本身不会改变原始记录的值。

在这种状态下,当发送包含foo或bar的记录,并以message作为标签名称时,将生成名为message_foo_counter和message_bar_counter的度量标准,并通过Prometheus进行收集。

Prometheus 已经允许自由设置标签,这是一个重要的概念。您可以从记录中设置值,例如将 HTTP 响应代码添加为标签值,从而可以将每个响应代码的比率制作成图表。

教程

如果你觉得准备数据或配置Prometheus很麻烦,我们还准备了教程,请尝试一下。

prom.png
广告
将在 10 秒后关闭
bannerAds