Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Simplify distributed tracing: ObservabilityInstaller installation

May 5, 2026
Pavol Loffay
Related topics:
Cloud servicesAutomation and managementKubernetesVirtualization
Related products:
Red Hat OpenShiftRed Hat OpenShift Data Foundation

    In modern cloud-native environments, distributed tracing is essential for maintaining visibility into complex microservices. However, deploying a complete, end-to-end tracing stack on Red Hat OpenShift has traditionally required significant manual effort. To address this, the cluster observability operator now introduces the ObservabilityInstaller custom resource (CR). This new capability automates the deployment and integration of the entire tracing ecosystem, moving from a fragmented manual process to a unified, declarative installation.

    Traditional multistep installation

    Previously, administrators had to install each operator individually, provision their respective custom resources, manually configure role-based access control (RBAC), and link the OpenTelemetry collector to the storage backend. This multistep workflow was not only time consuming but also increased the risk of configuration errors.

    A production-ready tracing stack on OpenShift relies on three foundational components:

    • Red Hat build of OpenTelemetry manages data collection and ingestion.
    • Tempo operator provides scalable, high-performance trace storage.
    • Cluster observability operator delivers the integrated visualization and UI components.

    Figure 1 illustrates the high-level architecture including all components.

    This diagram shows the ObservabilityInstaller architecture.
    Figure 1: The installer provisions an OpenTelemetry collector, Tempo, and UI plug-in.

    Streamline deployment with ObservabilityInstaller

    The ObservabilityInstaller CR acts as a high-level orchestrator. It simplifies the process by automating the provisioning of the OpenTelemetryCollector, TempoStack, and the tracing UIPlugin.

    Notably, the operator can also manage the installation of the prerequisite operators themselves. If they are already present on the cluster, the ObservabilityInstaller intelligently skips that step and proceeds to configuration.

    To begin the installation of the end-to-end tracing system, we must first set up an S3-compatible object storage to serve as the backend for Tempo. For this purpose, we will utilize Red Hat OpenShift Data Foundation, specifically leveraging the lightweight multicluster gateway component.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-storage
      labels:
        openshift.io/cluster-monitoring: "true"
    ---
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-storage-operatorgroup
      namespace: openshift-storage
    spec:
      targetNamespaces:
        - openshift-storage
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: mcg-operator
      namespace: openshift-storage
    spec:
      channel: stable-4.19
      installPlanApproval: Automatic
      name: mcg-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    ---
    apiVersion: noobaa.io/v1alpha1
    kind: NooBaa
    metadata:
      name: noobaa
      namespace: openshift-storage
    spec:
      dbResources:
        requests:
          cpu: "0.1"
          memory: 1Gi
      dbType: postgres
      coreResources:
        requests:
          cpu: "0.1"
          memory: 1Gi

    The NooBaa CR provisions the object storage backed by PVs with cluster’s default storage class. We can customize the persistent volumes with BackingStore and BucketClass CRs and use the Postgres DB to store metadata.

    After deploying the object storage, we can continue by deploying an end-to-end distributed tracing system. Do not forget to update the accessKeyID. The command to get the updated ID is provided in the manifest. 

    apiVersion: v1
    kind: Namespace
    metadata:
      name: observability
    ---
    # ObjectBucketClaim for tracing storage
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: tracing-bucket
      namespace: observability
    spec:
      bucketName: tracing-bucket
      storageClassName: openshift-storage.noobaa.io
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: openshift-service-ca
      namespace: observability
      annotations:
        service.beta.openshift.io/inject-cabundle: "true"
    data: {}
    ---
    apiVersion: observability.openshift.io/v1alpha1
    kind: ObservabilityInstaller
    metadata:
      name: tracing
      namespace: observability
    spec:
      capabilities:
        tracing:
          enabled: true
          operators:
            install: true
          storage:
            objectStorage:
              s3:
                endpoint: https://s3.openshift-storage.svc:443
                bucket: tracing-bucket
                accessKeyID: alpBATHU5yrA4oQJdwv3  # oc get secret tracing-bucket -n observability -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 -d
                accessKeySecret:
                  name: tracing-bucket
                  key: AWS_SECRET_ACCESS_KEY
              tls:
                caConfigMap:
                  name: openshift-service-ca
                  key: service-ca.crt

    The tracing.enabled command instructs the cluster observability to provision the tracing infrastructure. The operators.install command ensures the installation of the Red Hat build of OpenTelemetry and Tempo operator.

    After applying the manifest, the cluster observability begins provisioning the necessary objects:

    NAME                                            READY   STATUS    RESTARTS   AGE
    tempo-tracing-compactor-56b4f5f678-k2t5p        1/1     Running   0          83s
    tempo-tracing-distributor-b548d48bb-hwxqt       1/1     Running   0          84s
    tempo-tracing-gateway-5698c9c5fc-gwrdc          2/2     Running   0          83s
    tempo-tracing-ingester-0                        1/1     Running   0          83s
    tempo-tracing-querier-644d6bd4bf-sdtd9          1/1     Running   0          83s
    tempo-tracing-query-frontend-7fb779f696-gck2d   1/1     Running   0          83s
    tracing-collector-675d5cf48f-bdwtg              1/1     Running   0          82s
    And services:
    tempo-tracing-compactor:              7946/TCP, 3200/TCP
    tempo-tracing-distributor:            4318/TCP, 4317/TCP, 3200/TCP
    tempo-tracing-gateway:                8090/TCP, 8081/TCP, 8080/TCP
    tempo-tracing-gossip-ring:            7946/TCP
    tempo-tracing-ingester:               3200/TCP, 9095/TCP
    tempo-tracing-querier:                7946/TCP, 3200/TCP, 9095/TCP
    tempo-tracing-query-frontend:         3200/TCP, 9095/TCP
    tempo-tracing-query-frontend-discovery: 3200/TCP, 9095/TCP, 9096/TCP
    tracing-collector:                    14250/TCP, 4317/TCP, 4318/TCP, 14268/TCP, 6831/UDP, 6832/UDP, 9411/TCP
    tracing-collector-headless:           14250/TCP, 4317/TCP, 4318/TCP, 14268/TCP, 6831/UDP, 6832/UDP, 9411/TCP

    After installation, there is no need for manual UI configuration. Simply navigate to the OpenShift console, go to the Observe menu, and select Traces. Your workload traces will be accessible under the application tenant.

    The services created are as follows:

    tempo-tracing-compactor:              7946/TCP, 3200/TCP
    tempo-tracing-distributor:            4318/TCP, 4317/TCP, 3200/TCP
    tempo-tracing-gateway:                8090/TCP, 8081/TCP, 8080/TCP
    tempo-tracing-gossip-ring:            7946/TCP
    tempo-tracing-ingester:               3200/TCP, 9095/TCP
    tempo-tracing-querier:                7946/TCP, 3200/TCP, 9095/TCP
    tempo-tracing-query-frontend:         3200/TCP, 9095/TCP
    tempo-tracing-query-frontend-discovery: 3200/TCP, 9095/TCP, 9096/TCP
    tracing-collector:                    14250/TCP, 4317/TCP, 4318/TCP, 14268/TCP, 6831/UDP, 6832/UDP, 9411/TCP
    tracing-collector-headless:           14250/TCP, 4317/TCP, 4318/TCP, 14268/TCP, 6831/UDP, 6832/UDP, 9411/TCP

    Figure 2 shows tracing the UI plug-in with the provisioned Tempo instance.

    This shows the tracing of the UI plug-in with the provisioned Tempo instance.
    Figure 2: Users can query and visualize trace data from the provisioned Tempo instance.

    Object storage support

    In our example, we used a multicloud gateway from OpenShift Data Foundation which provides S3 APIs. However, the installer CR also supports other object storage types, such as Microsoft Azure Blob Storage and Google Cloud Storage.

    The following is an Azure example:

    apiVersion: observability.openshift.io/v1alpha1
    kind: ObservabilityInstaller
    metadata:
      name: tracing
      namespace: observability
    spec:
      capabilities:
        tracing:
          enabled: true
          operators:
            install: true
          storage:
            objectStorage:
              azure:
               container:
               accountName:
               accountKeySecret:
                 name:
                 key:

    Learn more

    The ObservabilityInstaller is designed to accelerate time-to-value for teams implementing distributed tracing. It provides an optimized out-of-the-box experience while maintaining flexibility for power users. While the cluster observability manages the core configuration, administrators can still modify some underlying fields in the generated CRs (e.g., replica counts or resource requests) to meet specific production requirements.

    Check out these resources for more information:

    • ObservabilityInstaller docs
    • Red Hat build of OpenTelemetry docs
    • Tempo operator docs
    • OpenShift Data Foundation

    Related Posts

    • Red Hat build of Perses with the cluster observability operator

    • Evaluate OpenShift cluster health with the cluster observability operator

    • Step-by-step guide to configuring alerts in Cluster Observability Operator

    • Effective observability with Red Hat build of OpenTelemetry

    Recent Posts

    • Debugging image mode with Red Hat OpenShift 4.20: A practical guide

    • EvalHub: Because "looks good to me" isn't a benchmark

    • SQL Server HA on RHEL: Meet Pacemaker HA Agent v2 (tech preview)

    • Deploy with confidence: Continuous integration and continuous delivery for agentic AI

    • Every layer counts: Defense in depth for AI agents with Red Hat AI

    What’s up next?

    Learning Path Feature image for Red Hat OpenShift

    Deployment of Red Hat OpenShift Data Foundation using GitOps

    Deploy Red Hat OpenShift Data Foundation (ODF), a unified data storage...
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.