Skip to content

Commit 9151c3c

Browse files
Add scrapeClasses to OpenTelemetryCollector CRD
Signed-off-by: Christian Ciach <christian.ciach@gmail.com>
1 parent 8e9c5e1 commit 9151c3c

16 files changed

+179
-44
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: enhancement
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action)
5+
component: target allocator
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: Add prometheus ScrapeClass support
9+
10+
# One or more tracking issues related to the change
11+
issues: [3600]
12+
13+
# (Optional) One or more lines of additional information to render under the primary note.
14+
# These lines will be padded with 2 spaces and then inserted directly into the document.
15+
# Use pipe (|) for multiline entries.
16+
subtext:
17+
Added support for configuring `scrapeClasses` when using the PrometheusCR-feature of the target allocator.
18+
The format of the `scrapeClasses` array is exactly as same as `spec.scrapeClasses` of the `Prometheus` CRD.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ spec:
708708
enabled: true
709709
serviceMonitorSelector: {}
710710
podMonitorSelector: {}
711+
scrapeClasses: []
711712
config:
712713
receivers:
713714
prometheus:
@@ -724,6 +725,9 @@ spec:
724725
EOF
725726
```
726727

728+
The `scrapeClasses` attribute refers to the ScrapeClass feature of the Prometheus Operator.
729+
Refer to https://prometheus-operator.dev/docs/developer/scrapeclass/ to learn more about scrape classes.
730+
727731
## Configure resource attributes
728732

729733
The OpenTelemetry Operator can automatically set resource attributes as defined in the

apis/v1beta1/targetallocator_types.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ type TargetAllocatorPrometheusCR struct {
2525
// +kubebuilder:default:="30s"
2626
// +kubebuilder:validation:Format:=duration
2727
ScrapeInterval *metav1.Duration `json:"scrapeInterval,omitempty"`
28+
// ScrapeClasses to be referenced by PodMonitors and ServiceMonitors to include common configuration.
29+
// If specified, expects an array of ScrapeClass objects as specified by https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.ScrapeClass.
30+
// +optional
31+
// +listType=atomic
32+
// +kubebuilder:pruning:PreserveUnknownFields
33+
ScrapeClasses []AnyConfig `json:"scrapeClasses,omitempty"`
2834
// PodMonitors to be selected for target discovery.
2935
// A label selector is a label query over a set of resources. The result of matchLabels and
3036
// matchExpressions are ANDed. An empty label selector matches all objects. A null

apis/v1beta1/zz_generated.deepcopy.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bundle/community/manifests/opentelemetry-operator.clusterserviceversion.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2025-11-20T10:03:26Z"
102+
createdAt: "2025-12-05T15:25:47Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3

bundle/community/manifests/opentelemetry.io_opentelemetrycollectors.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8027,6 +8027,12 @@ spec:
80278027
type: object
80288028
type: object
80298029
x-kubernetes-map-type: atomic
8030+
scrapeClasses:
8031+
items:
8032+
type: object
8033+
type: array
8034+
x-kubernetes-list-type: atomic
8035+
x-kubernetes-preserve-unknown-fields: true
80308036
scrapeConfigSelector:
80318037
properties:
80328038
matchExpressions:

bundle/community/manifests/opentelemetry.io_targetallocators.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2335,6 +2335,12 @@ spec:
23352335
type: object
23362336
type: object
23372337
x-kubernetes-map-type: atomic
2338+
scrapeClasses:
2339+
items:
2340+
type: object
2341+
type: array
2342+
x-kubernetes-list-type: atomic
2343+
x-kubernetes-preserve-unknown-fields: true
23382344
scrapeConfigSelector:
23392345
properties:
23402346
matchExpressions:

bundle/openshift/manifests/opentelemetry-operator.clusterserviceversion.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2025-11-20T10:03:26Z"
102+
createdAt: "2025-12-05T15:25:48Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3

bundle/openshift/manifests/opentelemetry.io_opentelemetrycollectors.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8026,6 +8026,12 @@ spec:
80268026
type: object
80278027
type: object
80288028
x-kubernetes-map-type: atomic
8029+
scrapeClasses:
8030+
items:
8031+
type: object
8032+
type: array
8033+
x-kubernetes-list-type: atomic
8034+
x-kubernetes-preserve-unknown-fields: true
80298035
scrapeConfigSelector:
80308036
properties:
80318037
matchExpressions:

bundle/openshift/manifests/opentelemetry.io_targetallocators.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2335,6 +2335,12 @@ spec:
23352335
type: object
23362336
type: object
23372337
x-kubernetes-map-type: atomic
2338+
scrapeClasses:
2339+
items:
2340+
type: object
2341+
type: array
2342+
x-kubernetes-list-type: atomic
2343+
x-kubernetes-preserve-unknown-fields: true
23382344
scrapeConfigSelector:
23392345
properties:
23402346
matchExpressions:

0 commit comments

Comments
 (0)