Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump tempo to 2.7 #1110

Merged
merged 15 commits into from
Feb 7, 2025
28 changes: 28 additions & 0 deletions .chloggen/tempo-2.7.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: breaking

# The name of the component, or a single word describing the area of concern, (e.g. tempostack, tempomonolithic, github action)
component: tempostack, tempomonolithic

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Update Tempo to 2.7.0

# One or more tracking issues related to the change
issues: [1110]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: |
Update Tempo to 2.7.0 https://github.com/grafana/tempo/releases/tag/v2.7.0
The Tempo instrumentation changed from Jaeger to OpenTelemetry with OTLP/http exporter.

The `spec.observability.tracing.jaeger_agent_endpoint` is deprecated in favor of `spec.observability.tracing.otlp_http_endpoint`.
```yaml
spec:
observability:
tracing:
jaeger_agent_endpoint: # Deprecated!
sampling_fraction: "1"
otlp_http_endpoint: http://localhost:4320
```
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Current Operator version
OPERATOR_VERSION ?= 0.14.2
TEMPO_VERSION ?= 2.6.1
TEMPO_VERSION ?= 2.7.0
JAEGER_QUERY_VERSION ?= 1.62.0
TEMPO_QUERY_VERSION ?= 2.6.1
TEMPO_QUERY_VERSION ?= 2.7.0
TEMPO_GATEWAY_VERSION ?= main-2024-11-05-28e4c83
TEMPO_GATEWAY_OPA_VERSION ?= main-2024-10-09-7237863
OAUTH_PROXY_VERSION=4.14
Expand Down
13 changes: 13 additions & 0 deletions api/tempo/v1alpha1/tempostack_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,19 +177,32 @@ type MetricsConfigSpec struct {
// TracingConfigSpec defines a tracing config including endpoints and sampling.
type TracingConfigSpec struct {
// SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
// The SamplingFraction has to be defined to enable tracing.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Sampling Fraction"
SamplingFraction string `json:"sampling_fraction,omitempty"`

// JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
// Deprecated: in favor of OTLPHttpEndpoint.
//
// +optional
// +kubebuilder:validation:Optional
// +kubebuilder:default:="localhost:6831"
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger-Agent-Endpoint"
JaegerAgentEndpoint string `json:"jaeger_agent_endpoint,omitempty"`

// OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
// For example, "http://localhost:4320".
// The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
// on the sidecar injected to the Tempo (e.g. 4320).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be done in a separate PR, but should we remove the automated sidecar injection as we talked recently? And don't define any kubebuilder:default for this setting?

If we want to keep supporting the sidecar injection via the OTEL operator, I'd make it optional (opt-in).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the the sidecar injection should be optional and controlled via a CR option.

Let's do it in a separate PR #1111

//
// +optional
// +kubebuilder:validation:Optional
// +kubebuilder:default:="http://localhost:4320"
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OTLP-HTTP-Endpoint"
OTLPHttpEndpoint string `json:"otlp_http_endpoint,omitempty"`
}

// GrafanaConfigSpec defines configuration for Grafana.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ metadata:
capabilities: Deep Insights
categories: Logging & Tracing,Monitoring
containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.14.2
createdAt: "2025-01-16T09:58:41Z"
createdAt: "2025-02-05T16:29:10Z"
description: Create and manage deployments of Tempo, a high-scale distributed
tracing backend.
operatorframework.io/cluster-monitoring: "true"
Expand Down Expand Up @@ -757,12 +757,21 @@ spec:
- description: Tracing defines a config for operands.
displayName: Tracing Config
path: observability.tracing
- description: JaegerAgentEndpoint defines the jaeger endpoint data gets send
to.
- description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
displayName: Jaeger-Agent-Endpoint
path: observability.tracing.jaeger_agent_endpoint
- description: SamplingFraction defines the sampling ratio. Valid values are
0 to 1.
- description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
displayName: OTLP-HTTP-Endpoint
path: observability.tracing.otlp_http_endpoint
- description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
displayName: Sampling Fraction
path: observability.tracing.sampling_fraction
- description: The replication factor is a configuration setting that determines
Expand Down Expand Up @@ -1493,11 +1502,11 @@ spec:
- --config=controller_manager_config.yaml
env:
- name: RELATED_IMAGE_TEMPO
value: docker.io/grafana/tempo:2.6.1
value: docker.io/grafana/tempo:2.7.0
- name: RELATED_IMAGE_JAEGER_QUERY
value: docker.io/jaegertracing/jaeger-query:1.62.0
- name: RELATED_IMAGE_TEMPO_QUERY
value: docker.io/grafana/tempo-query:2.6.1
value: docker.io/grafana/tempo-query:2.7.0
- name: RELATED_IMAGE_TEMPO_GATEWAY
value: quay.io/observatorium/api:main-2024-11-05-28e4c83
- name: RELATED_IMAGE_TEMPO_GATEWAY_OPA
Expand Down Expand Up @@ -1622,11 +1631,11 @@ spec:
provider:
name: Grafana Tempo Operator SIG
relatedImages:
- image: docker.io/grafana/tempo:2.6.1
- image: docker.io/grafana/tempo:2.7.0
name: tempo
- image: docker.io/jaegertracing/jaeger-query:1.62.0
name: jaeger-query
- image: docker.io/grafana/tempo-query:2.6.1
- image: docker.io/grafana/tempo-query:2.7.0
name: tempo-query
- image: quay.io/observatorium/api:main-2024-11-05-28e4c83
name: tempo-gateway
Expand Down
18 changes: 14 additions & 4 deletions bundle/community/manifests/tempo.grafana.com_tempostacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -293,12 +293,22 @@ spec:
properties:
jaeger_agent_endpoint:
default: localhost:6831
description: JaegerAgentEndpoint defines the jaeger endpoint
data gets send to.
description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
type: string
otlp_http_endpoint:
default: http://localhost:4320
description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
type: string
sampling_fraction:
description: SamplingFraction defines the sampling ratio.
Valid values are 0 to 1.
description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
type: string
type: object
type: object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ metadata:
capabilities: Deep Insights
categories: Logging & Tracing,Monitoring
containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.14.2
createdAt: "2025-01-16T09:58:39Z"
createdAt: "2025-02-05T16:29:09Z"
description: Create and manage deployments of Tempo, a high-scale distributed
tracing backend.
operatorframework.io/cluster-monitoring: "true"
Expand Down Expand Up @@ -757,12 +757,21 @@ spec:
- description: Tracing defines a config for operands.
displayName: Tracing Config
path: observability.tracing
- description: JaegerAgentEndpoint defines the jaeger endpoint data gets send
to.
- description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
displayName: Jaeger-Agent-Endpoint
path: observability.tracing.jaeger_agent_endpoint
- description: SamplingFraction defines the sampling ratio. Valid values are
0 to 1.
- description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
displayName: OTLP-HTTP-Endpoint
path: observability.tracing.otlp_http_endpoint
- description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
displayName: Sampling Fraction
path: observability.tracing.sampling_fraction
- description: The replication factor is a configuration setting that determines
Expand Down Expand Up @@ -1505,11 +1514,11 @@ spec:
- --metrics-tls-cert-file=/var/run/tls/server/tls.crt
env:
- name: RELATED_IMAGE_TEMPO
value: docker.io/grafana/tempo:2.6.1
value: docker.io/grafana/tempo:2.7.0
- name: RELATED_IMAGE_JAEGER_QUERY
value: docker.io/jaegertracing/jaeger-query:1.62.0
- name: RELATED_IMAGE_TEMPO_QUERY
value: docker.io/grafana/tempo-query:2.6.1
value: docker.io/grafana/tempo-query:2.7.0
- name: RELATED_IMAGE_TEMPO_GATEWAY
value: quay.io/observatorium/api:main-2024-11-05-28e4c83
- name: RELATED_IMAGE_TEMPO_GATEWAY_OPA
Expand Down Expand Up @@ -1640,11 +1649,11 @@ spec:
provider:
name: Grafana Tempo Operator SIG
relatedImages:
- image: docker.io/grafana/tempo:2.6.1
- image: docker.io/grafana/tempo:2.7.0
name: tempo
- image: docker.io/jaegertracing/jaeger-query:1.62.0
name: jaeger-query
- image: docker.io/grafana/tempo-query:2.6.1
- image: docker.io/grafana/tempo-query:2.7.0
name: tempo-query
- image: quay.io/observatorium/api:main-2024-11-05-28e4c83
name: tempo-gateway
Expand Down
18 changes: 14 additions & 4 deletions bundle/openshift/manifests/tempo.grafana.com_tempostacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -293,12 +293,22 @@ spec:
properties:
jaeger_agent_endpoint:
default: localhost:6831
description: JaegerAgentEndpoint defines the jaeger endpoint
data gets send to.
description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
type: string
otlp_http_endpoint:
default: http://localhost:4320
description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
type: string
sampling_fraction:
description: SamplingFraction defines the sampling ratio.
Valid values are 0 to 1.
description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
type: string
type: object
type: object
Expand Down
18 changes: 14 additions & 4 deletions config/crd/bases/tempo.grafana.com_tempostacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -289,12 +289,22 @@ spec:
properties:
jaeger_agent_endpoint:
default: localhost:6831
description: JaegerAgentEndpoint defines the jaeger endpoint
data gets send to.
description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
type: string
otlp_http_endpoint:
default: http://localhost:4320
description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
type: string
sampling_fraction:
description: SamplingFraction defines the sampling ratio.
Valid values are 0 to 1.
description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
type: string
type: object
type: object
Expand Down
4 changes: 2 additions & 2 deletions config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ spec:
- --leader-elect
env:
- name: RELATED_IMAGE_TEMPO
value: docker.io/grafana/tempo:2.6.1
value: docker.io/grafana/tempo:2.7.0
- name: RELATED_IMAGE_JAEGER_QUERY
value: docker.io/jaegertracing/jaeger-query:1.62.0
- name: RELATED_IMAGE_TEMPO_QUERY
value: docker.io/grafana/tempo-query:2.6.1
value: docker.io/grafana/tempo-query:2.7.0
- name: RELATED_IMAGE_TEMPO_GATEWAY
value: quay.io/observatorium/api:main-2024-11-05-28e4c83
- name: RELATED_IMAGE_TEMPO_GATEWAY_OPA
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -686,12 +686,21 @@ spec:
- description: Tracing defines a config for operands.
displayName: Tracing Config
path: observability.tracing
- description: JaegerAgentEndpoint defines the jaeger endpoint data gets send
to.
- description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
displayName: Jaeger-Agent-Endpoint
path: observability.tracing.jaeger_agent_endpoint
- description: SamplingFraction defines the sampling ratio. Valid values are
0 to 1.
- description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
displayName: OTLP-HTTP-Endpoint
path: observability.tracing.otlp_http_endpoint
- description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
displayName: Sampling Fraction
path: observability.tracing.sampling_fraction
- description: The replication factor is a configuration setting that determines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -686,12 +686,21 @@ spec:
- description: Tracing defines a config for operands.
displayName: Tracing Config
path: observability.tracing
- description: JaegerAgentEndpoint defines the jaeger endpoint data gets send
to.
- description: |-
JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
Deprecated: in favor of OTLPHttpEndpoint.
displayName: Jaeger-Agent-Endpoint
path: observability.tracing.jaeger_agent_endpoint
- description: SamplingFraction defines the sampling ratio. Valid values are
0 to 1.
- description: |-
OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to.
For example, "http://localhost:4320".
The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port
on the sidecar injected to the Tempo (e.g. 4320).
displayName: OTLP-HTTP-Endpoint
path: observability.tracing.otlp_http_endpoint
- description: |-
SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
The SamplingFraction has to be defined to enable tracing.
displayName: Sampling Fraction
path: observability.tracing.sampling_fraction
- description: The replication factor is a configuration setting that determines
Expand Down
5 changes: 3 additions & 2 deletions docs/spec/tempo.grafana.com_tempostacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,9 @@ spec: # TempoStackSpec defines the desired st
createPrometheusRules: false # CreatePrometheusRules specifies if Prometheus rules for alerts should be created for Tempo components.
createServiceMonitors: false # CreateServiceMonitors specifies if ServiceMonitors should be created for Tempo components.
tracing: # Tracing defines a config for operands.
jaeger_agent_endpoint: "localhost:6831" # JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
sampling_fraction: "" # SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
jaeger_agent_endpoint: "localhost:6831" # JaegerAgentEndpoint defines the jaeger endpoint data gets send to. Deprecated: in favor of OTLPHttpEndpoint.
otlp_http_endpoint: "http://localhost:4320" # OTLPHttpEndpoint defines the OTLP/http endpoint data gets send to. For example, "http://localhost:4320". The default OTLP/http port 4318 collides with the distributor ports, therefore it is recommended to use a different port on the sidecar injected to the Tempo (e.g. 4320).
sampling_fraction: "" # SamplingFraction defines the sampling ratio. Valid values are 0 to 1. The SamplingFraction has to be defined to enable tracing.
replicationFactor: 0 # The replication factor is a configuration setting that determines how many ingesters need to acknowledge the data from the distributors before accepting a span.
retention: # Retention period defined by dataset. User can specify how long data should be stored.
global: # Global is used to configure global retention.
Expand Down
2 changes: 1 addition & 1 deletion internal/manifests/compactor/compactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func BuildCompactor(params manifestutils.Params) ([]client.Object, error) {
if err != nil {
return nil, err
}
d.Spec.Template, err = manifestutils.PatchTracingJaegerEnv(params.Tempo, d.Spec.Template)
d.Spec.Template, err = manifestutils.PatchTracingEnvConfiguration(params.Tempo, d.Spec.Template)
if err != nil {
return nil, err
}
Expand Down
Loading