You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2. **Restart services** (remove volumes to clear stale credentials):
633
623
```bash
634
-
docker-compose down
624
+
dockercompose down -v
635
625
docker compose up -d
636
626
```
637
627
628
+
Data Prepper uses a template (`pipelines.template.yaml`) with credential placeholders that are injected from `.env` at container startup — no manual edits needed. OpenSearch Dashboards also reads credentials from `.env` automatically.
629
+
638
630
1. Add service definition to `docker-compose.yml`:
639
631
```yaml
640
632
new-service:
@@ -900,16 +892,16 @@ When creating examples or documentation, always reference the OpenTelemetry Gen-
3. Update all OpenSearch sinks in `data-prepper/pipelines.yaml`
906
-
4. Restart all services with `docker-compose down && docker compose up -d`
895
+
1. Update `.env` file (single source of truth)
896
+
2. Restart all services with `docker compose down -v && docker compose up -d`
897
+
898
+
Data Prepper uses a template (`pipelines.template.yaml`) with placeholders processed at container startup via `command:` in docker-compose.yml. No manual credential edits needed in pipeline configs.
907
899
908
900
### Configuration File Locations
909
901
910
902
- **OpenSearch**: No custom config file - uses environment variables in docker-compose.yml
- **Data Prepper**: `docker-compose/data-prepper/pipelines.yaml` and `docker-compose/data-prepper/data-prepper-config.yaml`
904
+
- **Data Prepper**: `docker-compose/data-prepper/pipelines.template.yaml` (credentials injected at startup) and `docker-compose/data-prepper/data-prepper-config.yaml`
To run the installer locally (e.g. after cloning):
43
+
```bash
44
+
./install.sh # Full install
45
+
./install.sh --simulate # Dry run
46
+
./install.sh --skip-pull # Skip image pulls (useful for re-installs)
47
+
```
32
48
33
49
**Installation takes 8-15 minutes.** After completion, access:
34
50
@@ -84,17 +100,37 @@ docker compose down -v
84
100
85
101
## Instrumenting Your Agent
86
102
87
-
Observability Stack accepts telemetry data via the OpenTelemetry Protocol (OTLP) and follows the [OpenTelemetry Gen-AI Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) for standardized attribute naming and structure for AI agents.
103
+
Observability Stack accepts telemetry data via the OpenTelemetry Protocol (OTLP) and follows the [OpenTelemetry Gen-AI Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) for standardized attribute naming and structure for AI agents.
104
+
105
+
### OTLP Endpoint Configuration
106
+
107
+
The OTel Collector exposes two OTLP endpoints — choose the one that matches your SDK's protocol:
108
+
109
+
| Port | Protocol | Endpoint | Used By |
110
+
|------|----------|----------|---------|
111
+
|**4317**| gRPC |`http://localhost:4317`| OpenTelemetry SDK (default), most language SDKs |
> **Note:** The Strands Agents SDK's `StrandsTelemetry().setup_otlp_exporter()` uses HTTP/protobuf, which requires **port 4318**. Using port 4317 with Strands will silently fail. When using `OTLPSpanExporter` directly with gRPC (as in the examples below), use **port 4317**.
88
124
89
-
### Example: Manual Instrumentation with OpenTelemetry
90
-
For complete example, see [examples/plain-agents/weather-agent](./examples/plain-agents/weather-agent)
125
+
### Example: Manual Instrumentation with OpenTelemetry
126
+
For complete example, see [examples/plain-agents/weather-agent](./examples/plain-agents/weather-agent)
91
127
```python
92
128
from opentelemetry import trace
93
129
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
94
130
from opentelemetry.sdk.trace import TracerProvider
95
131
from opentelemetry.sdk.trace.export import BatchSpanProcessor
**Note:** Running with OTel Demo significantly increases resource requirements. See [Resource Requirements](#resource-requirements) below.
216
282
217
-
### Changing OpenSearch Credentials
283
+
### OpenSearch Credentials
218
284
219
-
To change the OpenSearch username and password:
285
+
The default credentials are `admin` / `My_password_123!@#` (development only).
220
286
221
-
1.**Edit `.env` file**:
287
+
**Setting credentials during install:**
288
+
289
+
The interactive installer prompts "Customize OpenSearch credentials?" — enter `Y` to set a custom username and password. The installer writes them to `.env`, and all services pick them up automatically.
The Data Prepper configuration has hardcoded credentials in three OpenSearch sink definitions. You can update them automatically:
230
-
231
-
```bash
232
-
# Replace username (default: admin)
233
-
sed -i.bak 's/username: admin/username: your-new-username/g' docker-compose/data-prepper/pipelines.yaml
234
-
235
-
# Replace password (default: My_password_123!@#)
236
-
sed -i.bak 's/password: "My_password_123!@#"/password: "your-new-password"/g' docker-compose/data-prepper/pipelines.yaml
237
-
```
238
-
239
-
Or manually update the `username` and `password` fields in all `opensearch:` sink sections.
240
-
241
-
3.**Restart the stack** (remove volumes to clear stale credentials):
299
+
2.**Restart the stack** (remove volumes to clear stale credentials):
242
300
```bash
243
301
docker compose down -v
244
302
docker compose up -d
245
303
```
246
304
247
-
**Note**: The `opensearch-dashboards` and `opensearch-dashboards-init` services automatically use the values from `.env`, so no manual changes are needed for those components. OpenSearch uses HTTPS with self-signed certificates, so use `-k` flag with curl commands.
305
+
**How it works:**`.env` is the single source of truth for credentials. OpenSearch, Dashboards, and the init script read from `.env` via environment variables. Data Prepper uses a [template](docker-compose/data-prepper/pipelines.template.yaml) with `OPENSEARCH_USER`/`OPENSEARCH_PASSWORD` placeholders that are injected via `sed` at container startup — no manual config edits needed. OpenSearch uses HTTPS with self-signed certificates, so use `-k` flag with curl commands.
0 commit comments