-
Notifications
You must be signed in to change notification settings - Fork 348
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
[jaeger-v2] Add support for Elasticsearch #617
Merged
Merged
Changes from all commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
22c8ade
Jaeger allInOne allow different storage types (#603)
rgaduput 7212b86
Merge branch 'main' into jaeger-v2-with-v1
hellspawn679 9e73b35
minor changes
0dd3924
Merge branch 'jaeger-v2-with-v1' of https://github.com/hellspawn679/h…
f7db758
added image changes
b980560
fix lint
d9aa942
removed v1 allInOne and added jaeger-v2
01d341b
removed v2 references
ee12ee4
added allInOne again
3012649
minor fix
1ea257d
fixed how the config is being passed
42c30a0
fixed mirror template change
f247a95
use --set-file for user config
647f7fa
removed config-test and updated configmap template
8069914
fixed
742febb
Merge branch 'v2' into jaeger-v2-with-v1
hellspawn679 b6bbc4b
fixed minor naming
hellspawn679 7a24558
indentation
yurishkuro 5c0e7ba
v2-elasticsearch
hellspawn679 69455e7
fix ci
hellspawn679 44c7298
fix ci
hellspawn679 bf68edc
Merge branch 'v2' into jaeger-v2-with-v1
hellspawn679 6fdf55a
fixed
hellspawn679 c3a7493
Merge branch 'jaeger-v2-with-v1' of https://github.com/hellspawn679/h…
hellspawn679 912de03
fixed and added docs
hellspawn679 d82e1cb
fixed
hellspawn679 e70863b
added port
hellspawn679 b2a3977
fixed
hellspawn679 7eabf48
fixed
hellspawn679 0ad61d2
fixed typo
hellspawn679 c07f325
fixed
hellspawn679 8700626
removed test config
hellspawn679 37eb6ec
updated docs
hellspawn679 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,8 @@ description: A Jaeger Helm chart for Kubernetes | |
name: jaeger | ||
type: application | ||
version: 4.0.0 | ||
annotations: | ||
Jaegerv1Version: "1.62.0" | ||
# CronJobs require v1.21 | ||
kubeVersion: ">= 1.21-0" | ||
keywords: | ||
|
@@ -16,8 +18,6 @@ icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg | |
sources: | ||
- https://hub.docker.com/u/jaegertracing/ | ||
maintainers: | ||
- name: dvonthenen | ||
email: [email protected] | ||
- name: mehta-ankit | ||
email: [email protected] | ||
- name: mikelorant | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
|
||
--- | ||
|
||
# Jaeger Helm-chart Documentation | ||
|
||
## Overview | ||
This documentation provides step-by-step setup and configuration instructions for running Jaeger in various modes, with sections for both the `all-in-one` mode and the `Elasticsearch` configuration, followed by details on optional `--set` flags for custom configurations. | ||
|
||
--- | ||
|
||
### 1. Jaeger All-in-One Mode | ||
|
||
Jaeger’s all-in-one mode combines the Jaeger Agent, Collector, and Query into a single pod for simplicity. Use this mode for testing or lightweight deployments. | ||
|
||
#### **Command to Run All-in-One** | ||
|
||
```bash | ||
helm install <chart_name> charts/jaeger \ | ||
--set-file userconfig=path/to/configfile.yaml # Optional: user-specific config | ||
``` | ||
|
||
- **Flags Explained**: | ||
- `provisionDataStore.cassandra=false`: Disable Cassandra provision. | ||
- `storage.type=memory`: Use in-memory storage (non-persistent). | ||
- `allInOne.enabled=true`: Enable the all-in-one Jaeger setup. | ||
- `agent.enabled=false`, `collector.enabled=false`, `query.enabled=false`: Disable separate components since they’re embedded in all-in-one. | ||
- `userconfig`: Optional file for additional configuration. | ||
|
||
|
||
--- | ||
|
||
### 2. Elasticsearch Mode with Provisioned Data Store | ||
|
||
This mode configures Jaeger to store trace data in an Elasticsearch backend, suitable for production-level usage. | ||
|
||
#### **Command to Run with Elasticsearch** | ||
|
||
1. **Single Master Node Configuration** | ||
For a basic setup with only one Elasticsearch master node, use this command: | ||
|
||
```bash | ||
helm install <chart_name> charts/jaeger \ | ||
--set provisionDataStore.elasticsearch=true \ | ||
--set allInOne.enabled=false \ | ||
--set storage.type=elasticsearch \ | ||
--set elasticsearch.master.masterOnly=false \ | ||
--set elasticsearch.master.replicaCount=1 \ | ||
--set elasticsearch.data.replicaCount=0 \ | ||
--set elasticsearch.coordinating.replicaCount=0 \ | ||
--set elasticsearch.ingest.replicaCount=0 | ||
--set agent.enabled=true \ | ||
--set collector.enabled=true \ | ||
--set query.enabled=true | ||
--set-file userconfig=path/to/configfile.yaml # Optional: user-specific config | ||
``` | ||
|
||
2. **Default Configuration** | ||
For a more straightforward setup with default Elasticsearch configuration, use: | ||
|
||
```bash | ||
helm install <chart_name> charts/jaeger \ | ||
--set provisionDataStore.elasticsearch=true \ | ||
--set allInOne.enabled=false \ | ||
--set storage.type=elasticsearch \ | ||
--set agent.enabled=true \ | ||
--set collector.enabled=true \ | ||
--set query.enabled=true | ||
--set-file userconfig=path/to/configfile.yaml # Optional: user-specific config | ||
``` | ||
|
||
- **Flags Explained**: | ||
- `provisionDataStore.cassandra=false`: Disable Cassandra provision. | ||
- `provisionDataStore.elasticsearch=true`: Enable Elasticsearch as the storage. | ||
- `storage.type=elasticsearch`: Use Elasticsearch for storage. | ||
- **Single Master Node Settings** (optional for simplified configuration): | ||
- `elasticsearch.master.masterOnly=false` | ||
- `elasticsearch.master.replicaCount=1` | ||
- `elasticsearch.data.replicaCount=0` | ||
- `elasticsearch.coordinating.replicaCount=0` | ||
- `elasticsearch.ingest.replicaCount=0` | ||
- `userconfig`: Optional file for additional configuration. | ||
|
||
--- | ||
|
||
|
||
### 3. Additional `--set` Configuration Options | ||
|
||
For custom configurations, the following flags are commonly used. These cover primary Elasticsearch storage settings and additional archive configurations. | ||
|
||
#### **Primary Storage Settings** | ||
- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.index_prefix`: Set the prefix for Elasticsearch indices. | ||
- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.host`: Specify the Elasticsearch host. | ||
- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.user`: Username for Elasticsearch authentication. | ||
- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password`: Password for Elasticsearch authentication. | ||
|
||
Here’s the updated documentation with the archive storage settings referenced and with similar flags specified for archive configurations. | ||
|
||
|
||
#### **Archive Storage Settings** | ||
- Similar flags for archive configurations can be used to manage archived trace data. | ||
|
||
The `values.yaml` file shows archive configurations under `jaeger_storage` with the `archive_store` section for Elasticsearch. You can configure these with the following flags: | ||
|
||
- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.index_prefix` | ||
- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.server_urls` | ||
- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.username` | ||
- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password` | ||
|
||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
{{ if (and (not .Values.userconfig) .Values.provisionDataStore.elasticsearch) }} | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: user-config | ||
namespace: {{ include "jaeger.namespace" . }} | ||
labels: | ||
{{- include "jaeger.labels" . | nindent 4 }} | ||
data: | ||
user-config.yaml: | | ||
service: | ||
extensions: [jaeger_storage, jaeger_query, healthcheckv2] | ||
pipelines: | ||
traces: | ||
receivers: [otlp] | ||
processors: [batch] | ||
exporters: [jaeger_storage_exporter] | ||
|
||
extensions: | ||
healthcheckv2: | ||
use_v2: true | ||
http: | ||
endpoint: 0.0.0.0:13133 | ||
|
||
jaeger_query: | ||
storage: | ||
traces: primary_store | ||
traces_archive: archive_store | ||
|
||
|
||
jaeger_storage: | ||
backends: | ||
primary_store: | ||
elasticsearch: | ||
hellspawn679 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
index_prefix: {{- .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.index_prefix | quote | indent 2 }} | ||
server_urls: ["{{ include "elasticsearch.client.url" . }}"] | ||
username: {{- .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.username | quote | indent 2 }} | ||
{{- if .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password }} | ||
password: {{- .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password | quote | indent 2 }} | ||
{{- end }} | ||
archive_store: | ||
elasticsearch: | ||
index_prefix: {{- .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.index_prefix | quote | indent 2 }} | ||
server_urls: ["{{ include "elasticsearch.client.url" . }}"] | ||
username: {{- .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.username | quote | indent 2 }} | ||
{{- if .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password }} | ||
password: {{- .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password | quote | indent 2 }} | ||
{{- end }} | ||
|
||
receivers: | ||
otlp: | ||
protocols: | ||
grpc: | ||
endpoint:{{ .Values.config.receivers.otlp.protocols.grpc.endpoint | indent 1 }} | ||
http: | ||
endpoint:{{ .Values.config.receivers.otlp.protocols.http.endpoint | indent 1 }} | ||
|
||
processors: | ||
batch: | ||
|
||
exporters: | ||
jaeger_storage_exporter: | ||
trace_storage: primary_store | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you elaborate why this variable is defined in
annotations
instead ofvalues.yaml
? What is the significance of having it here?