Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-7935

Metrics with user supplied scope variables

    XMLWordPrintableJSON

Details

    Description

      We use DataDog for metrics. DD and Flink differ somewhat in how they track metrics.

      Flink names and scopes metrics together, at least by default. E.g. by default the System scope for operator metrics is <host>.taskmanager.<tm_id>.<job_name>.<operator_name>.<subtask_index>. The scope variables become part of the metric's full name.

      In DD the metric would be named something generic, e.g. taskmanager.job.operator, and they would be distinguished by their tag values, e.g. tm_id=foo, job_name=var, operator_name=baz.

      Flink allows you to configure the format string for system scopes, so it is possible to set the operator scope format to taskmanager.job.operator. We do this for all scopes:

      metrics.scope.jm: jobmanager
      metrics.scope.jm.job: jobmanager.job
      metrics.scope.tm: taskmanager
      metrics.scope.tm.job: taskmanager.job
      metrics.scope.task: taskmanager.job.task
      metrics.scope.operator: taskmanager.job.operator
      

      This seems to work. The DataDog Flink metric's plugin submits all scope variables as tags, even if they are not used within the scope format. And it appears internally this does not lead to metrics conflicting with each other.

      We would like to extend this to user defined metrics, but you can define variables/scopes when adding a metric group or metric with the user API, so that in DD we have a single metric with a tag with many different values, rather than hundreds of metrics to just the one value we want to measure across different event types.

      Attachments

        Activity

          People

            Unassigned Unassigned
            elevy Elias Levy
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: