Skip to content

feat(opensearch): add query exporter helm chart#1602

Open
joluc wants to merge 11 commits into
mainfrom
feat/opensearch-query-exporter
Open

feat(opensearch): add query exporter helm chart#1602
joluc wants to merge 11 commits into
mainfrom
feat/opensearch-query-exporter

Conversation

@joluc

@joluc joluc commented May 12, 2026

Copy link
Copy Markdown
Contributor

Pull Request Details

Add optional query exporter component. It runs custom OpenSearch queries on a schedule, exposes results as Prometheus metrics.

Copilot AI review requested due to automatic review settings May 12, 2026 08:12
@joluc joluc requested a review from a team as a code owner May 12, 2026 08:12
joluc added 11 commits May 12, 2026 10:14
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
…y exporter

Signed-off-by: joluc <jonathan.schwarze@sap.com>
…ce labels

Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
Signed-off-by: joluc <jonathan.schwarze@sap.com>
@joluc joluc force-pushed the feat/opensearch-query-exporter branch from d27a03c to 752df87 Compare May 12, 2026 08:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds an optional “query exporter” component to the OpenSearch Helm chart, intended to run scheduled OpenSearch queries and expose the results as Prometheus metrics for scraping.

Changes:

  • Bumps the OpenSearch plugin/chart version from 0.0.59 to 0.0.60.
  • Introduces queryExporter values/configuration and a queryExporter.enabled PluginDefinition option.
  • Adds Helm templates to deploy the query exporter (Deployment, Service, ConfigMaps) and optionally a ServiceMonitor.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
opensearch/plugindefinition.yaml Bumps plugin/chart version and adds queryExporter.enabled option.
opensearch/chart/Chart.yaml Chart version bump to 0.0.60.
opensearch/chart/values.yaml Adds queryExporter configuration block (image, creds refs, queries, ServiceMonitor settings, etc.).
opensearch/chart/templates/_helpers.tpl Adds helper templates for query-exporter naming/labels/selectors.
opensearch/chart/templates/query-exporter-config.yaml Adds ConfigMaps for exporter config and optional query definitions.
opensearch/chart/templates/query-exporter-deployment.yaml Adds Deployment for the query exporter (mounts config, certs, and optional queries).
opensearch/chart/templates/query-exporter-service.yaml Adds Service exposing the metrics port.
opensearch/chart/templates/query-exporter-servicemonitor.yaml Adds optional ServiceMonitor for Prometheus Operator scraping.
opensearch/chart/ci/test-values.yaml Enables query exporter in CI values and provides sample queries.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

spec:
selector:
matchLabels:
{{- include "opensearch.query-exporter-selector" . | nindent 6 }}
{{- include "opensearch.query-exporter-labels" . | nindent 4 }}
data:
config.yaml: |
opensearch_url: https://{{ include "opensearch.logs-cluster-name" . }}:9200
config.yaml: |
opensearch_url: https://{{ include "opensearch.logs-cluster-name" . }}:9200
ca_cert_path: /certs/ca.crt
insecure: true
Comment on lines +117 to +128
{{- if .Values.queryExporter.queries }}
- name: queries
configMap:
name: {{ $name }}-queries
{{- end }}
- name: certs
secret:
secretName: opensearch-http-cert
items:
- key: ca.crt
path: ca.crt
{{- end }}
Comment on lines +44 to +62
env:
- name: {{ upper $credRef }}_USERNAME
valueFrom:
secretKeyRef:
name: {{ $credRef }}-credentials
key: username
- name: {{ upper $credRef }}_PASSWORD
valueFrom:
secretKeyRef:
name: {{ $credRef }}-credentials
key: password
{{- range $ref := (.Values.queryExporter.additionalCredentialsRefs | default list) }}
- name: {{ upper $ref }}_USERNAME
valueFrom:
secretKeyRef:
name: {{ $ref }}-credentials
key: username
- name: {{ upper $ref }}_PASSWORD
valueFrom:
# -- Image repository for the query exporter
repository: sap-cloud-infrastructure/opensearch-query-exporter
# -- Image tag for the query exporter
tag: latest
Comment on lines +4 to +16
{{- if .Values.queryExporter.enabled }}
{{- $name := include "opensearch.query-exporter-name" . }}
{{- $credRef := .Values.queryExporter.credentialsRef | default "logs" }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ $name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "opensearch.query-exporter-labels" . | nindent 4 }}
spec:
replicas: {{ .Values.queryExporter.replicas | default 1 }}
selector:
Comment on lines +20 to +24
- username: "${{ upper $credRef }}_USERNAME"
password: "${{ upper $credRef }}_PASSWORD"
{{- range $ref := (.Values.queryExporter.additionalCredentialsRefs | default list) }}
- username: "${{ upper $ref }}_USERNAME"
password: "${{ upper $ref }}_PASSWORD"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants