The “Delete Attribute” Odigos Action can be used to delete attributes from logs, metrics, and traces.

Use Cases

Security

  • By default, OpenTelemetry should not record PII (Personally Identifiable Information) or sensitive data such as passwords, api tokens, creditcard numbers etc. However, if the data is accidentally added to the telemetry signals, or if a manual instrumentation recorded it into an attribute, this action can be used to delete such data.

Cost Reduction

  • Some vendors charge based on the amount of data ingested. For self hosted destinations, the cost is correlated to the use of cloud resources which grows with the based on the amount of data you process and store. By deleting unnecessary attributes, you can reduce the amount of data ingested and reduce costs.

Usability

  • Remove duplications - sometimes, the same attribute is added to the telemetry signals by multiple sources. This action can be used to delete the duplicates and keep the data clean. For example, you might find the host name recorded both as host.name and k8s.node.name which are the same value.
  • Verbosity - not all data is useful to all users. You might wish to delete certain attributes when they give no value to your organization or observability needs. Sometimes, recording too much data can obscure the important information and make it harder to find.

Mechanism

This action receives a list of attribute names to delete from the telemetry signals.

The action will remove attributes from the following contexts:

  • Resource attributes for spans, metrics and log records.
  • Scope attributes for spans and metrics.
  • Span attributes for spans.
  • Span Events attributes for spans.
  • Metric data point attributes for metrics.
  • Log record attributes for logs.

The action will delete the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition.

Basic Example

The basic example below shows how to delete the host.name attribute from all telemetry signals.

Create a file named delete-host-name.yaml with the following content:

apiVersion: actions.odigos.io/v1alpha1
kind: DeleteAttribute
metadata:
  name: delete-host-name
  namespace: odigos-system
spec:
  actionName: "delete host.name"
  attributeNamesToDelete:
    - host.name
  signals:
    - TRACES
    - METRICS
    - LOGS

Apply the action to the cluster:

kubectl apply -f delete-host-name.yaml

Full Action Options

The full list of options available for the “DeleteAttribute” action are:

  • attributeNamesToDelete (required): An array of strings representing the names of the attributes to be deleted from the telemetry signals.

  • signals (required): An array with the signals that the processor will act on (TRACES, METRICS, LOGS).

  • actionName (optional): Allows you to attach a meaningful name to the action for convenience. Odigos does not use or assume any meaning from this field.

  • notes (optional): A free-form text field that allows you to attach notes to the action for convenience. Odigos does not use or assume any meaning from this field.

  • disabled (optional): A boolean field that allows you to disable the action. When set to true, the action will not be executed. The default value is false.

Notes

  • This action will delete selected attributes from spans, metric data points and log record but will not delete the entire span, metric data point or log record.
  • For matching attributes, the attribute value will be deleted entirely. This action is not suitable for partial deletion or masking of the attribute value. For example, if you collect an http.request.body attribute, this action can be used to delete the attribute but not a key from the JSON object.
  • While it is common for information to be recorded in attributes, it can also be recorded into names or other fields, for which this action will not be effective.