Manage derived labels

Create, update, and delete derived labels using Terraform or Chronoctl.

View derived labels

View existing derived labels using Chronoctl.

To view all labels:

chronoctl derived-labels list

To list specific labels using their slugs:

chronoctl derived-labels list --slugs slug_name_1,slug_name_2

Create a derived label

The value_glob is the label pattern being matched. This example matches the patterns:

  • m3coordinator-read*
  • m3coordinator-write*
  • m3coordinator-admin*

These values end with *, which matches any pattern. These patterns display under a single derived label defined by the label_name, which is tier.

You can provide multiple definitions for a value with different value_glob patterns. Chronosphere tries them in order of definition.

This example includes a constructed derived label and a mapping derived label. Both follow the same construction rules.

To create a label with Chronoctl:

  1. Create a YAML file with the desired labels. To generate a templated example resource, run the derived-labels scaffold command:

    chronoctl derived-labels scaffold

    You can redirect the output to a file for editing:

    chronoctl derived-labels scaffold > derived-label.yaml
  2. Run this command:

    chronoctl apply -f derived-label.yml

    This is an example definition file for Chronoctl.

    api_version: v1/config
    kind: DerivedLabel
    spec:
      name: Test Constructed Label
      slug: test-constructed-label
      label_name: tier
      description: this is a test
      metric_label:
        constructed_label:
          value_definitions:
            - value: read
              filters:
                - name: instance
                  value_glob: m3coordinator-read*
            - value: write
              filters:
                - name: instance
                  value_glob: m3coordinator-write*
    ---
    api_version: v1/config
    kind: DerivedLabel
    spec:
      name: Test Mapping Label
      slug: test-mapping-label
      label_name: chronosphere_service
      description: this is a test
      metric_label:
        mapping_label:
          name_mappings:
            - filters:
                - name: __name__
                  value_glob: grpc_*
              source_label: grpc_service
            - filters:
                - name: __name__
                  value_glob: envoy_*
              source_label: backend_service

Delete a derived label

Delete a derived label with Chronoctl by using the chronoctl derived-labels delete command, specifying the slug of the derived label to delete.

For example, to delete the derived label with slug slug_name_1:

chronoctl derived-labels delete slug_name_1