{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/operations-and-maintenance/monitoring/otel-collector","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/operations-and-maintenance/monitoring/otel-collector","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/operations-and-maintenance/monitoring/otel-collector","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/operations-and-maintenance/monitoring/otel-collector","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/operations-and-maintenance/monitoring/otel-collector","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/operations-and-maintenance/monitoring/otel-collector","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/operations-and-maintenance/monitoring/otel-collector","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"type":"markdown"},"seo":{"title":"OTEL Collector deployment","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"otel-collector-deployment","__idx":0},"children":["OTEL Collector deployment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide describes how to deploy and configure the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://opentelemetry.io/docs/collector/","target":"_blank"},"children":["OpenTelemetry (OTEL) Collector"]}," for ","Ripple Custody","."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide applies to on-premise deployments only. For telemetry concepts, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/operations-and-maintenance/monitoring/telemetry"},"children":["Telemetry overview"]},". For ","Ripple Custody"," Helm chart telemetry settings, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/telemetry-configuration"},"children":["Telemetry configuration"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before you deploy the OTEL Collector, you need:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A running ","Ripple Custody"," deployment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An understanding of telemetry concepts such as OpenTelemetry, OTLP, traces, metrics, and logs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Familiarity with the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector","target":"_blank"},"children":["official OTEL Collector Helm charts"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deployment-model","__idx":2},"children":["Deployment model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ","Ripple Custody"," Helm charts include a bundled OTEL Collector instance that is disabled by default:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  enabled: false\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The bundled OTEL Collector instance is for testing purposes only. Do not use it for production workloads. For production, deploy a dedicated and segregated OTEL Collector instance."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can deploy OTEL Collector in two configurations:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A single dedicated OTEL Collector instance for both trusted and untrusted components."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Two separate dedicated instances: one for trusted components and one for untrusted components."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information on trusted and untrusted components, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security-model"},"children":["Security model"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information on OTEL Collector deployment, see:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://opentelemetry.io/docs/kubernetes/helm/collector/#installing-the-chart","target":"_blank"},"children":["Kubernetes OpenTelemetry documentation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector","target":"_blank"},"children":["official OTEL Collector Helm charts"]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The YAML snippets on this page use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["opentelemetry-collector"]}," section from the OTEL Collector Helm ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["values.yaml"]}," file, not the ","Ripple Custody"," Helm configuration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"enable-the-collector","__idx":3},"children":["Enable the collector"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To enable the bundled OTEL Collector for testing, set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enabled"]}," field to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  enabled: true\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This deploys an OTEL Collector pod alongside the ","Ripple Custody"," deployment and sets the environment variables that let pods discover the OTEL Collector service."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-resources","__idx":4},"children":["Configure resources"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default resource values may be too low for a typical deployment. Run load testing at the peak usage you expect, observe resource usage, and set values accordingly."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.requests.cpu"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Minimum CPU allocation for the OTEL Collector pod"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.requests.memory"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Minimum memory allocation for the OTEL Collector pod"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.limits.cpu"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum CPU allocation for the OTEL Collector pod"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.limits.memory"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum memory allocation for the OTEL Collector pod"]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  resources:\n    requests:\n      cpu: 4\n      memory: 4Gi\n    limits:\n      cpu: 8\n      memory: 16Gi\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Resource values must be high enough that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["opentelemetry-collector"]}," pod does not enter a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Pending"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CrashLoopBackOff"]}," Kubernetes state. The higher the number of users, the greater the volume of telemetry data generated, and the higher the resource consumption for OTEL Collector."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-third-party-contributors","__idx":5},"children":["Configure third-party contributors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add third-party contributors as parameters in the OTEL Collector configuration. The ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-collector-contrib","target":"_blank"},"children":["OTEL Collector Contrib GitHub repository"]}," contains three main categories:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver","target":"_blank"},"children":["Third-party receivers"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor","target":"_blank"},"children":["Third-party processors"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter","target":"_blank"},"children":["Third-party exporters"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configuration recommendations:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Receivers"]},": Set the appropriate network parameters for the protocol, such as TCP or UDP."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Processors"]},": Configure log and trace formatting, enrichment, and trace throttling."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Exporters"]},": Configure exporters to send telemetry data from OTEL Collector to another OTEL receiver or backend."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  ports:\n    syslog:\n      protocol: TCP     # or UDP\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Contributions from telemetry vendors such as Microsoft, AWS, Elasticsearch, and Prometheus can be found in OTEL Collector, but not all vendors are present. If a telemetry vendor contribution exists, it might not include every feature from that vendor."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"telemetry-data-reception","__idx":6},"children":["Telemetry data reception"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, OTEL Collector listens on the OTLP ports, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4317"]}," for gRPC and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4318"]}," for HTTP or HTTPS, but not for the rSyslog protocol."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ","Ripple Custody"," Helm charts configure OTEL Collector to listen on port ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["54526"]}," with the TCP protocol for rSyslog telemetry data."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"syslog-port-configuration","__idx":7},"children":["Syslog port configuration"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ports.syslog.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable the syslog receiver port"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ports.syslog.containerPort"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["54526"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Container port for syslog reception"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ports.syslog.servicePort"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["54526"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Kubernetes service port for syslog"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ports.syslog.hostPort"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["54526"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Host port for syslog reception"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ports.syslog.protocol"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TCP"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Network protocol, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TCP"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UDP"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  ports:\n    syslog:\n      enabled: true\n      containerPort: 54526\n      servicePort: 54526\n      hostPort: 54526\n      protocol: TCP\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"host-telemetry-data","__idx":8},"children":["Host telemetry data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, OTEL Collector only receives telemetry data sent by telemetry network protocols, such as OTLP or rSyslog, from ","Ripple Custody"," components. OTEL Collector can also read and export host telemetry data, such as stdout logs and host metrics."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Because OTEL Collector uses the Kubernetes API to access host telemetry data, it needs the correct Role Based Access Control (RBAC) permissions. Set appropriate RBAC permissions in the Kubernetes cluster for OTEL Collector to access the desired host telemetry data. For more information, see the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://opentelemetry.io/docs/kubernetes/collector/components/","target":"_blank"},"children":["OTEL Collector documentation"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"presets-configuration","__idx":9},"children":["Presets configuration"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.logsCollection.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable stdout log collection from ","Ripple Custody"," components"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.logsCollection.includeCollectorLogs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Include OTEL Collector's own logs in collection"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.logsCollection.storeCheckpoints"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Store log collection checkpoints for resumption"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.hostMetrics.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable host-level metrics collection"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.kubernetesAttributes.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enrich telemetry with Kubernetes metadata"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.kubernetesEvents.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Collect Kubernetes events"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.clusterMetrics.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Collect cluster-wide metrics"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["presets.kubeletMetrics.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Collect kubelet metrics"]}]}]}]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Basic log collection","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  enabled: true\n\n  presets:\n    logsCollection:\n      enabled: true\n","lang":"yaml"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Full observability","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  enabled: true\n\n  presets:\n    logsCollection:\n      enabled: true\n      includeCollectorLogs: true\n      storeCheckpoints: true\n    hostMetrics:\n      enabled: true\n    kubernetesAttributes:\n      enabled: true\n    kubernetesEvents:\n      enabled: true\n    clusterMetrics:\n      enabled: true\n    kubeletMetrics:\n      enabled: true\n","lang":"yaml"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://opentelemetry.io/docs/kubernetes/helm/collector/#presets","target":"_blank"},"children":["OTEL Collector presets"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"pipeline-configuration","__idx":10},"children":["Pipeline configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You must update the default ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pipelines"]}," configuration for your environment. OTEL Collector executes each pipeline in three steps: receivers, processors, and exporters."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are four pipelines:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["logs/syslog"]}," - Syslog-received logs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["logs"]}," - OTLP-received logs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["traces"]}," - Distributed traces"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metrics"]}," - Application and system metrics"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  config:\n\n    service:\n      pipelines:\n        logs/syslog:\n          receivers: [syslog]\n          processors: [batch]\n          exporters: [logging]\n        logs:\n          receivers: [otlp]\n          processors: [batch]\n          exporters: [logging]\n        traces:\n          receivers: [otlp]\n          processors: [tail_sampling]\n          exporters: [logging]\n        metrics:\n          receivers: [otlp]\n          processors: [batch]\n          exporters: [logging]\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://github.com/open-telemetry/opentelemetry-collector-contrib","target":"_blank"},"children":["OTEL Collector Contrib GitHub repository"]}," provides public implementations and documentation for OTEL Collector receivers, processors, and exporters."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"processors","__idx":11},"children":["Processors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In OpenTelemetry, a processor sits between the receiver and exporter in the data pipeline. Processors modify telemetry data such as traces, metrics, and logs. Common tasks include filtering, batching, and data enrichment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Helm charts provide a default processor configuration named ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tail_sampling"]}," for handling traces:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  config:\n\n    processors:\n      tail_sampling:\n        decision_wait: 30s\n        num_traces: 50000\n        expected_new_traces_per_sec: 50\n        policies: [...]\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tail_sampling"]}," processor defines policies that specify rules for selecting which traces to keep for analysis. Examples include capturing domain-related traces, authenticated requests, and forced logs. Policies also filter traces based on criteria such as specific HTTP targets, sources, payloads, latency, and status codes. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["samples-some"]}," policy is a probabilistic sampling policy that keeps a percentage of traces to reduce storage and processing costs while providing a representative sample."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"exporter-configuration","__idx":12},"children":["Exporter configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Exporters transmit telemetry data from OTEL Collector to external systems or storage. They package and send telemetry data to destinations such as monitoring platforms, logging systems, or analytics tools."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Elasticsearch","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  config:\n\n    exporters:\n\n      elasticsearch/trace:\n        endpoints: ['http://my-elastic-search-host:9200']\n        traces_index: trace_index\n      elasticsearch/log:\n        endpoints: ['http://my-elastic-search-host:9200']\n        logs_index: log_index\n        sending_queue:\n          enabled: true\n          num_consumers: 20\n          queue_size: 1000\n      elasticsearch/syslog:\n        endpoints: ['http://my-elastic-search-host:9200']\n        logs_index: syslog_index\n        sending_queue:\n          enabled: true\n          num_consumers: 20\n          queue_size: 1000\n\n      pipelines:\n        logs/syslog:\n          exporters: [elasticsearch/syslog]\n        logs:\n          exporters: [elasticsearch/log]\n        traces:\n          exporters: [elasticsearch/trace]\n","lang":"yaml"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Azure Monitor","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"opentelemetry-collector:\n  config:\n\n    exporters:\n      azuremonitor:\n        endpoint: 'https://my-azure-region.applicationinsights.azure.com/'\n        instrumentation_key: 6ac20654-450e-29e4-65e2-1bdecb7db7c4\n        maxbatchsize: 1024\n        maxbatchinterval: 10s\n\n    service:\n      pipelines:\n        logs/syslog:\n          exporters: [azuremonitor]\n        logs:\n          exporters: [azuremonitor]\n        traces:\n          exporters: [azuremonitor]\n        metrics:\n          exporters: [azuremonitor]\n","lang":"yaml"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":13},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/operations-and-maintenance/monitoring/telemetry"},"children":["Telemetry overview"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/telemetry-configuration"},"children":["Telemetry configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security-model"},"children":["Security model"]}]}]}]},"headings":[{"value":"OTEL Collector deployment","id":"otel-collector-deployment","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Deployment model","id":"deployment-model","depth":2},{"value":"Enable the collector","id":"enable-the-collector","depth":2},{"value":"Configure resources","id":"configure-resources","depth":2},{"value":"Configure third-party contributors","id":"configure-third-party-contributors","depth":2},{"value":"Telemetry data reception","id":"telemetry-data-reception","depth":2},{"value":"Syslog port configuration","id":"syslog-port-configuration","depth":3},{"value":"Host telemetry data","id":"host-telemetry-data","depth":2},{"value":"Presets configuration","id":"presets-configuration","depth":3},{"value":"Pipeline configuration","id":"pipeline-configuration","depth":2},{"value":"Processors","id":"processors","depth":2},{"value":"Exporter configuration","id":"exporter-configuration","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"OTEL Collector deployment"}},"lastModified":"2026-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/operations-and-maintenance/monitoring/otel-collector","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}