Storage provider | Secret parameters |
---|---|
|
|
MinIO |
See MinIO Operator.
|
Amazon S3 |
|
Microsoft Azure Blob Storage |
|
Google Cloud Storage on Google Cloud Platform (GCP) |
|
Installing the distributed tracing platform (Tempo) involves the following steps:
Setting up supported object storage.
Installing the Tempo Operator.
Creating a secret for the object storage credentials.
Creating a namespace for a TempoStack instance.
Creating a TempoStack
custom resource to deploy at least one TempoStack instance.
You can use the following configuration parameters when setting up a supported object storage.
Storage provider | Secret parameters |
---|---|
|
|
MinIO |
See MinIO Operator.
|
Amazon S3 |
|
Microsoft Azure Blob Storage |
|
Google Cloud Storage on Google Cloud Platform (GCP) |
|
You can install the distributed tracing platform (Tempo) from the Administrator view of the web console.
You are logged in to the OpenShift Container Platform web console as a cluster administrator with the cluster-admin
role.
For Red Hat OpenShift Dedicated, you must be logged in using an account with the dedicated-admin
role.
You are using a supported provider of object storage: Red Hat OpenShift Data Foundation, MinIO, Amazon S3, Azure Blob Storage, Google Cloud Storage.
Install the Tempo Operator:
Go to Operators → OperatorHub and search for Tempo Operator
.
Select the Tempo Operator that is OpenShift Operator for Tempo → Install → Install → View Operator.
This installs the Operator with the default presets:
|
In the Details tab of the page of the installed Operator, under ClusterServiceVersion details, verify that the installation Status is Succeeded.
Create a project of your choice for the TempoStack instance that you will create in a subsequent step: go to Home → Projects → Create Project.
In the project that you created for the TempoStack instance, create a secret for your object storage bucket: go to Workloads → secrets → Create → From YAML.
apiVersion: v1
kind: Secret
metadata:
name: minio-test
stringData:
endpoint: http://minio.minio.svc:9000
bucket: tempo
access_key_id: tempo
access_key_secret: <secret>
type: Opaque
Create a TempoStack instance.
You can create multiple TempoStack instances in separate projects on the same cluster. |
Go to Operators → Installed Operators.
Select TempoStack → Create TempoStack → YAML view.
In the YAML view, customize the TempoStack
custom resource (CR):
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: sample
namespace: <project_of_tempostack_instance>
spec:
storageSize: 1Gi
storage:
secret:
name: <secret-name> (1)
type: <secret-provider> (2)
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
1 | The value of the name in the metadata of the secret. |
2 | The accepted values are azure for Azure Blob Storage; gcs for Google Cloud Storage; and s3 for Amazon S3, MinIO, or Red Hat OpenShift Data Foundation. |
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simplest
namespace: <project_of_tempostack_instance>
spec:
storageSize: 1Gi
storage:
secret:
name: minio-test
type: s3
resources:
total:
limits:
memory: 2Gi
cpu: 2000m
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
The stack deployed in this example is configured to receive Jaeger Thrift over HTTP and OpenTelemetry Protocol (OTLP), which permits visualizing the data with the Jaeger UI.
Select Create.
Use the Project: dropdown list to select the project of the TempoStack instance.
Go to Operators → Installed Operators to verify that the Status of the TempoStack instance is Condition: Ready.
Go to Workloads → Pods to verify that all the component pods of the TempoStack instance are running.
Access the Tempo console:
Go to Networking → Routes and Ctrl+F to search for tempo
.
In the Location column, open the URL to access the Tempo console.
Select Log In With OpenShift to use your cluster administrator credentials for the web console.
The Tempo console initially shows no trace data following the Tempo console installation. |
You can install the distributed tracing platform (Tempo) from the command line.
An active OpenShift CLI (oc
) session by a cluster administrator with the cluster-admin
role.
|
You are using a supported provider of object storage: Red Hat OpenShift Data Foundation, MinIO, Amazon S3, Azure Blob Storage, Google Cloud Storage.
Install the Tempo Operator:
Create a project for the Tempo Operator by running the following command:
$ oc apply -f - << EOF
apiVersion: project.openshift.io/v1
kind: Project
metadata:
labels:
kubernetes.io/metadata.name: openshift-tempo-operator
openshift.io/cluster-monitoring: "true"
name: openshift-tempo-operator
EOF
Create an Operator group by running the following command:
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-tempo-operator
namespace: openshift-tempo-operator
spec:
upgradeStrategy: Default
EOF
Create a subscription by running the following command:
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: tempo-product
namespace: openshift-tempo-operator
spec:
channel: stable
installPlanApproval: Automatic
name: tempo-product
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
Check the operator status by running the following command:
$ oc get csv -n openshift-tempo-operator
Run the following command to create a project of your choice for the TempoStack instance that you will create in a subsequent step:
$ oc apply -f - << EOF
apiVersion: project.openshift.io/v1
kind: Project
metadata:
name: <project_of_tempostack_instance>
EOF
In the project that you created for the TempoStack instance, create a secret for your object storage bucket by running the following command:
$ oc apply -f - << EOF
<object_storage_secret>
EOF
apiVersion: v1
kind: Secret
metadata:
name: minio-test
stringData:
endpoint: http://minio.minio.svc:9000
bucket: tempo
access_key_id: tempo
access_key_secret: <secret>
type: Opaque
Create a TempoStack instance in the project that you created for the TempoStack instance.
You can create multiple TempoStack instances in separate projects on the same cluster. |
Customize the TempoStack
custom resource (CR):
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: sample
namespace: <project_of_tempostack_instance>
spec:
storageSize: 1Gi
storage:
secret:
name: <secret-name> (1)
type: <secret-provider> (2)
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
1 | The value of the name in the metadata of the secret. |
2 | The accepted values are azure for Azure Blob Storage; gcs for Google Cloud Storage; and s3 for Amazon S3, MinIO, or Red Hat OpenShift Data Foundation. |
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simplest
namespace: project_of_tempostack_instance
spec:
storageSize: 1Gi
storage:
secret:
name: minio-test
type: s3
resources:
total:
limits:
memory: 2Gi
cpu: 2000m
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
The stack deployed in this example is configured to receive Jaeger Thrift over HTTP and OpenTelemetry Protocol (OTLP), which permits visualizing the data with the Jaeger UI.
Apply the customized CR by running the following command.
$ oc apply -f - << EOF
<TempoStack_custom_resource>
EOF
Verify that the status
of all TempoStack components
is Running
and the conditions
are type: Ready
by running the following command:
$ oc get tempostacks.tempo.grafana.com simplest -o yaml
Verify that all the TempoStack component pods are running by running the following command:
$ oc get pods
Access the Tempo console:
Query the route details by running the following command:
$ export TEMPO_URL=$(oc get route -n <control_plane_namespace> tempo -o jsonpath='{.spec.host}')
Open https://<route_from_previous_step>
in a web browser.
Log in using your cluster administrator credentials for the web console.
The Tempo console initially shows no trace data following the Tempo console installation. |