-
Notifications
You must be signed in to change notification settings - Fork 163
Add EDOT narrative docs #2942
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
Merged
Merged
Add EDOT narrative docs #2942
Changes from 6 commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
9e9ade2
Add narrative docs for EDOT
theletterf 0cd65e5
Add edot narrative docs
theletterf d3170d6
Add proxy tshooting
theletterf d6523c4
Merge branch 'main' into add-edot-narrative-docs
theletterf b5dc1ff
Fix titles and links
theletterf 6158918
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf e91bbbd
Update solutions/_snippets/obs-apm-project.md
theletterf c28f1d8
Update solutions/observability/apm/collect-application-data.md
theletterf 9bf3128
Update solutions/observability/apm/use-opentelemetry-with-apm.md
theletterf 923d9a4
Update solutions/observability/applications/llm-observability.md
theletterf cbd51a6
Update solutions/observability/applications/llm-observability.md
theletterf 9b1c8a1
Update solutions/observability/get-started/quickstart-unified-kuberne…
theletterf 6a746c1
Update solutions/observability/get-started/opentelemetry/_snippets/ed…
theletterf 424c304
Update solutions/observability/get-started/quickstart-unified-kuberne…
theletterf 9c62598
Update troubleshoot/ingest/opentelemetry/edot-collector/collector-not…
theletterf 1d3bedb
Update troubleshoot/ingest/opentelemetry/edot-sdks/android/index.md
theletterf 2305d16
Update troubleshoot/ingest/opentelemetry/contact-support.md
theletterf b226c46
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf b83f5d3
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf 34baf57
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf 5ec3a20
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf b95c560
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf c361fee
Update solutions/observability/get-started/opentelemetry/use-cases/ku…
theletterf e3c3ec1
Update solutions/observability/get-started/opentelemetry/use-cases/ku…
theletterf bcb807f
Update solutions/observability/get-started/opentelemetry/use-cases/ll…
theletterf 1f7541a
Update solutions/observability/get-started/opentelemetry/use-cases/ll…
theletterf 6649117
Update solutions/observability/get-started/quickstart-unified-kuberne…
theletterf 66bf898
Move applies_to statement
theletterf 884bbe9
Merge branch 'main' into add-edot-narrative-docs
theletterf f082297
Fix link
theletterf 617cb4d
Update links
theletterf 3e4482a
Merge branch 'main' into add-edot-narrative-docs
theletterf 1c8c11c
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf 2ddd9e3
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf 7e0a17a
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf 8d32030
Update solutions/observability/get-started/opentelemetry/quickstart/e…
theletterf 2fbbf09
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf db04465
Update solutions/observability/get-started/opentelemetry/use-cases/ku…
theletterf c94f124
Update solutions/observability/get-started/opentelemetry/quickstart/s…
theletterf 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 hidden or 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,65 @@ | ||
name: Update Kube-Stack Version | ||
|
||
on: | ||
schedule: | ||
# Run every Monday at 9:00 AM UTC | ||
- cron: '0 9 * * 1' | ||
workflow_dispatch: # Allow manual triggering | ||
|
||
jobs: | ||
update-kube-stack-version: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.9' | ||
|
||
- name: Run kube-stack version update script | ||
run: | | ||
cd scripts | ||
python update_kube_stack_version.py | ||
|
||
- name: Check for changes | ||
id: verify-changed-files | ||
run: | | ||
if [ -n "$(git status --porcelain)" ]; then | ||
echo "changed=true" >> $GITHUB_OUTPUT | ||
else | ||
echo "changed=false" >> $GITHUB_OUTPUT | ||
fi | ||
|
||
- name: Commit and push changes | ||
if: steps.verify-changed-files.outputs.changed == 'true' | ||
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "GitHub Action" | ||
git add docs/docset.yml | ||
git commit -m "chore: update kube-stack version [skip ci]" | ||
git push | ||
|
||
- name: Create Pull Request | ||
if: steps.verify-changed-files.outputs.changed == 'true' | ||
uses: peter-evans/create-pull-request@v5 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
commit-message: "chore: update kube-stack version" | ||
title: "chore: update kube-stack version" | ||
body: | | ||
This PR automatically updates the kube-stack version in `docs/docset.yml` based on the latest version from the elastic-agent repository. | ||
|
||
**Changes:** | ||
- Updated kube-stack version in docset.yml | ||
|
||
This PR was created automatically by the weekly kube-stack version update workflow. | ||
branch: update-kube-stack-version | ||
delete-branch: true | ||
labels: | | ||
automated | ||
documentation |
This file contains hidden or 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 hidden or 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,161 @@ | ||
#!/usr/bin/env python3 | ||
""" | ||
Kube-Stack Version Update Script | ||
|
||
This script automatically updates the kube-stack version in the docset.yml file | ||
by fetching the latest version from the elastic-agent repository. | ||
|
||
Usage: | ||
python update_kube_stack_version.py [--dry-run] | ||
|
||
Options: | ||
--dry-run Show what would be updated without making changes | ||
""" | ||
|
||
import urllib.request | ||
import re | ||
import sys | ||
import argparse | ||
from pathlib import Path | ||
|
||
|
||
def fetch_url_content(url): | ||
"""Fetch content from a URL""" | ||
try: | ||
print(f"Attempting to fetch: {url}") | ||
with urllib.request.urlopen(url) as response: | ||
content = response.read().decode('utf-8') | ||
return content | ||
except urllib.error.URLError as e: | ||
print(f"Failed to retrieve content: {e.reason}") | ||
return None | ||
|
||
|
||
def get_collector_version(file_path): | ||
"""Extract the collector version from docset.yml""" | ||
try: | ||
with open(file_path, 'r', encoding='utf-8') as file: | ||
content = file.read() | ||
|
||
lines = content.splitlines() | ||
for line in lines: | ||
if line.strip().startswith('edot-collector-version:'): | ||
return line.split(':', 1)[1].strip() | ||
|
||
# If no specific version is found, use a default version that we know works | ||
return '9.1.2' | ||
except FileNotFoundError: | ||
print(f"Error: Could not find {file_path}") | ||
return None | ||
except Exception as e: | ||
print(f"Error reading {file_path}: {e}") | ||
return None | ||
|
||
|
||
def get_kube_stack_version(version='main'): | ||
"""Extract KubeStackChartVersion from elastic-agent repository""" | ||
# Try different URL formats for the k8s.go file | ||
# First try with the version as-is (in case it already has 'v' prefix) | ||
url = f'https://raw.githubusercontent.com/elastic/elastic-agent/{version}/testing/integration/k8s/k8s.go' | ||
print(f"Trying k8s.go URL: {url}") | ||
content = fetch_url_content(url) | ||
|
||
# If first attempt fails and version doesn't start with 'v', try with 'v' prefix | ||
if content is None and not version.startswith('v') and version != 'main': | ||
url = f'https://raw.githubusercontent.com/elastic/elastic-agent/v{version}/testing/integration/k8s/k8s.go' | ||
print(f"Retrying k8s.go with URL: {url}") | ||
content = fetch_url_content(url) | ||
|
||
# If that fails too, try with main branch | ||
if content is None: | ||
url = 'https://raw.githubusercontent.com/elastic/elastic-agent/main/testing/integration/k8s/k8s.go' | ||
print(f"Falling back to main branch for k8s.go: {url}") | ||
content = fetch_url_content(url) | ||
|
||
if content is None: | ||
print(f"Could not fetch k8s.go from any URL") | ||
return None | ||
|
||
# Look for the KubeStackChartVersion line | ||
lines = content.splitlines() | ||
for line in lines: | ||
if 'KubeStackChartVersion' in line and '=' in line: | ||
# Extract the version from the line like: KubeStackChartVersion = "0.6.3" | ||
match = re.search(r'KubeStackChartVersion\s*=\s*"([^"]+)"', line) | ||
if match: | ||
return match.group(1) | ||
|
||
print("Could not find KubeStackChartVersion in k8s.go") | ||
return None | ||
|
||
|
||
def update_docset_kube_stack_version(version, docset_path, dry_run=False): | ||
"""Update the kube-stack-version substitution in docset.yml""" | ||
try: | ||
with open(docset_path, 'r', encoding='utf-8') as file: | ||
content = file.read() | ||
|
||
# Replace the kube-stack-version line | ||
pattern = r'(kube-stack-version:\s*)[0-9]+\.[0-9]+\.[0-9]+' | ||
replacement = f'\\g<1>{version}' | ||
new_content = re.sub(pattern, replacement, content) | ||
|
||
if new_content != content: | ||
if dry_run: | ||
print(f"[DRY RUN] Would update kube-stack-version to {version} in {docset_path}") | ||
return True | ||
else: | ||
with open(docset_path, 'w', encoding='utf-8') as file: | ||
file.write(new_content) | ||
print(f"Updated kube-stack-version to {version} in {docset_path}") | ||
return True | ||
else: | ||
print(f"kube-stack-version already up to date: {version}") | ||
return False | ||
|
||
except Exception as e: | ||
print(f"Error updating {docset_path}: {e}") | ||
return False | ||
|
||
|
||
def main(): | ||
parser = argparse.ArgumentParser(description='Update kube-stack version in docset.yml') | ||
parser.add_argument('--dry-run', action='store_true', | ||
help='Show what would be updated without making changes') | ||
args = parser.parse_args() | ||
|
||
# Get the script directory and construct paths relative to it | ||
script_dir = Path(__file__).parent | ||
docset_path = script_dir.parent / 'docset.yml' | ||
|
||
print(f"Using docset.yml path: {docset_path}") | ||
|
||
# Get the current collector version from docset.yml | ||
col_version = get_collector_version(docset_path) | ||
if col_version is None: | ||
print("Error: Could not determine collector version") | ||
sys.exit(1) | ||
|
||
print(f"Collector version: {col_version}") | ||
|
||
# Get the kube-stack version from elastic-agent repository | ||
kube_stack_version = get_kube_stack_version(col_version) | ||
if kube_stack_version is None: | ||
print("Error: Could not fetch kube-stack version") | ||
sys.exit(1) | ||
|
||
print(f"Found kube-stack version: {kube_stack_version}") | ||
|
||
# Update the docset.yml file | ||
success = update_docset_kube_stack_version(kube_stack_version, docset_path, args.dry_run) | ||
|
||
if success: | ||
print("Kube-stack version update completed successfully") | ||
sys.exit(0) | ||
else: | ||
print("No update was needed or update failed") | ||
sys.exit(1) | ||
|
||
|
||
if __name__ == '__main__': | ||
main() |
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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
22 changes: 22 additions & 0 deletions
22
solutions/observability/get-started/opentelemetry/_snippets/edot-collector-auth.md
This file contains hidden or 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,22 @@ | ||
```yaml | ||
extensions: | ||
bearertokenauth: | ||
scheme: "APIKey" | ||
token: "<ENCODED_ELASTICSEARCH_APIKEY>" | ||
|
||
apmconfig: | ||
opamp: | ||
protocols: | ||
http: | ||
# Default is localhost:4320 | ||
# endpoint: "<CUSTOM_OPAMP_ENDPOINT>" | ||
source: | ||
elasticsearch: | ||
endpoint: "<ELASTICSEARCH_ENDPOINT>" | ||
auth: | ||
authenticator: bearertokenauth | ||
``` | ||
:::{note} | ||
For comprehensive authentication configuration options, see [Authentication methods](/reference/edot-collector/config/authentication-methods.md). | ||
theletterf marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
::: |
6 changes: 6 additions & 0 deletions
6
solutions/observability/get-started/opentelemetry/_snippets/guided-instructions.md
This file contains hidden or 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,6 @@ | ||
Use the **Add data** screen in Elastic Observability to generate install commands that are already configured with the values you need. | ||
|
||
1. Open Elastic Observability. | ||
2. Go to **Add data**. | ||
3. Select what you want to monitor. | ||
4. Follow the instructions. |
17 changes: 17 additions & 0 deletions
17
solutions/observability/get-started/opentelemetry/_snippets/process-config.md
This file contains hidden or 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,17 @@ | ||
Process metrics are turned off by default to avoid generating a large volume of timeseries data. To turn on process metrics, uncomment or add the following section inside the `hostmetrics` receiver configuration: | ||
|
||
```yaml | ||
process: | ||
mute_process_exe_error: true | ||
mute_process_io_error: true | ||
mute_process_user_error: true | ||
metrics: | ||
process.threads: | ||
enabled: true | ||
process.open_file_descriptors: | ||
enabled: true | ||
process.memory.utilization: | ||
enabled: true | ||
process.disk.operations: | ||
enabled: true | ||
``` |
9 changes: 9 additions & 0 deletions
9
...tions/observability/get-started/opentelemetry/_snippets/retrieve-credentials.md
This file contains hidden or 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,9 @@ | ||
Retrieve your {{es}} URL and your API key: | ||
|
||
1. Retrieve the {{es}} URL for your {{ecloud}} deployment: | ||
|
||
1. Go to the [{{ecloud}} console](https://cloud.elastic.co/). | ||
2. Next to your deployment, select **Manage**. | ||
3. Under **Applications** next to **{{es}}**, select **Copy endpoint**. | ||
|
||
2. Create an API Key following [these instructions](/deploy-manage/api-keys/elasticsearch-api-keys.md). |
7 changes: 7 additions & 0 deletions
7
...ns/observability/get-started/opentelemetry/_snippets/serverless-endpoint-api.md
This file contains hidden or 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,7 @@ | ||
Follow these steps to retrieve the managed OTLP endpoint URL for your Serverless project: | ||
|
||
1. In {{serverless-full}}, open your Observability project. | ||
2. Go to **Add data** → **Application** → **OpenTelemetry**. | ||
3. Select **Managed OTLP Endpoint** in the second step. | ||
4. Copy the OTLP endpoint configuration value. | ||
5. Select **Create API Key** to generate an API key. |
Binary file added
BIN
+2.2 MB
solutions/observability/get-started/opentelemetry/images/EDOT-K8s-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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.
Uh oh!
There was an error while loading. Please reload this page.