Plugin Helper: Metrics

The metrics plugin helper manages the metrics values in plugins.

Here is an example:

require 'fluent/plugin/input'

module Fluent::Plugin
  class ExampleInput < Input
    Fluent::Plugin.register_input('example', self)

    # 1. Load metrics helper
    helpers :metrics

    def configure(conf)
      super

      # 2. Create parser plugin instance
      @metrics = metrics_create(namespace: "fluentd", subsystem: "input", name: "example", help_text: "Example metrics")
    end

    def start
      super

      # 3. Increase metrics value
      @metrics.inc

    end

    def statistics
      stats = super

      # 4. Retrieve metrics value
      stats = {
        'input' => stats["input"].merge({ 'example' => @metrics.get })
      }
      stats
    end
end

For more details, see the following articles:

Methods

metrics_create(namespace: "fluentd", subsystem: "metrics", name:, help_text:, labels: {}, prefer_gauge: false)

This method creates a metrics instance.

  • namespace: The namespace for the metrics.

  • subsystem: The names that represent specific functions or components.

  • name: The metrics name.

  • help_text: The description for metrics.

  • labels: The key/value pair for metrics labels.

  • prefer_gauge: Use gauge instead of counter for the metrics if true.

Since 1.19.0, metrics_create method generates a getter method with the specified name on the calling instance.

Plugins using metrics

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.

Last updated

Was this helpful?