Skip to main content

Getting Started

loki
These instructions are for the self hosted Loki instance. If you need a managed service, please follow the instructions on the Grafana Cloud Loki page.
This destination is for self hosted Loki instances. Loki Labels Loki labels are used to “index” logs and allow efficent filtering in the Grafana UI. You can read more about them here. You can configure your grafana cloud loki labels in the Labels multi-input config option in the destination page in the Odigos UI.
  • Labels should be names of opentelemetry resource attribute or log record attribute keys that you want to index, for example: "k8s.namespace.name".
  • To avoid performance issues, it is recommended to limit the number of labels to a reasonable amount.
  • Use only low cardinality values. e.g. use only opentelemetry attributes for which you expect a small number of unique values like http.response.status_code but not network.peer.address.
  • If the label is not present in a log record, it will be ignored.
  • The default labels if not set are: k8s.container.name, k8s.pod.name, k8s.namespace.name

Configuring Destination Fields

❌ Traces ❌ Metrics ✅ Logs
  • LOKI_URL string : Endpoint. If scheme is not provided, it defaults to http. If port is not provided, it defaults to 3100. If path is not provided, it defaults to /otlp.
    • This field is required
    • Example: http://<loki-host>:<loki-port>/otlp
  • LOKI_USERNAME string : Basic Auth Username. username for basic authentication
    • This field is optional
    • Example: <loki-username>
  • LOKI_PASSWORD string : Basic Auth Password. password for basic authentication
    • This field is optional
    • Example: <loki-password>
  • LOKI_LABELS string[] : Labels. use these OpenTelemetry resource attributes as loki labels for each log record
    • This field is required and defaults to ["k8s.container.name", "k8s.pod.name", "k8s.namespace.name"]
The supported Loki version is V3. Please make sure you are using the correct version, and that you have enabled native OTLP support. As part of this version, the path /loki/api/v1/push has been deprecated and replaced with /otlp.

Adding Destination to Odigos

There are two primary methods for configuring destinations in Odigos:
Using the UI
1

Use the Odigos CLI to access the UI
odigos ui
2

Click on Add Destination, select Loki and follow the on-screen instructions
Using Kubernetes manifests
1

Save the YAML below to a file (e.g. loki.yaml)
apiVersion: odigos.io/v1alpha1
kind: Destination
metadata:
  name: loki-example
  namespace: odigos-system
spec:
  data:
    LOKI_LABELS: '<Labels (default: ["k8s.container.name", "k8s.pod.name", "k8s.namespace.name"])>'
    LOKI_URL: <Endpoint>
    # Note: The commented fields below are optional.
    # LOKI_USERNAME: <Basic Auth Username>
  destinationName: loki
  # Uncomment the 'secretRef' below if you are using the optional Secret.
  # secretRef:
  #   name: loki-secret
  signals:
  - LOGS
  type: loki

---

# The following Secret is optional. Uncomment the entire block if you need to use it.
# apiVersion: v1
# data:
#   LOKI_PASSWORD: <Base64 Basic Auth Password>
# kind: Secret
# metadata:
#   name: loki-secret
#   namespace: odigos-system
# type: Opaque
2

Apply the YAML using kubectl
kubectl apply -f loki.yaml