Skip to content

Commit 544629e

Browse files
committed
Cleanup and clarify config spec
- Ensure all config vars are in table format - Prefer SPLUNK prefix - Fix deployment environment typo Addresses open-telemetry#7 open-telemetry#8
1 parent 3e66ff1 commit 544629e

File tree

2 files changed

+39
-43
lines changed

2 files changed

+39
-43
lines changed

README.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,19 @@ The following components are currently in scope:
1414
- [Configuration](docs/configuration.md)
1515
- [Repository](docs/repository.md)
1616

17+
GDI projects MUST adopt GDI specification changes by their next minor release
18+
and within three months (whichever is sooner). The GDI specification and GDI
19+
projects MUST remove any deprecated specification at the next major release.
20+
1721
## Terms
1822

1923
- Collector: A single binary that can be deployed as an agent or gateway.
20-
Refers to `splunk-otel-collector`.
24+
Refers to `splunk-otel-collector` project.
2125
- GDI: Getting Data In
2226
- GDI Project: A project in the `signalfx` GitHub that starts with
2327
`splunk-otel-\*`
2428
- Instrumentation Library: The way to emit telemetry data from an application.
25-
Refers to `splunk-otel-<language>`.
29+
Refers to `splunk-otel-<language>` projects.
2630
- Maintainer: Someone responsible for the specification or a project
2731
- Specification: A set of requirements for projects
2832
- Project: A GitHub repository

docs/configuration.md

+33-41
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,19 @@ If a GDI project requires an immediate configuration variable that is not
1616
available in the OpenTelemetry specification and not available in the GDI
1717
specification, the project MAY introduce a project-specific configuration
1818
variable until the GDI specification maintainers make a decision. Any
19-
project-specific configuration variable defined MUST NOT be marked as stable
20-
unless added to the GDI specification. Upon resolution by the GDI
21-
specification, the GDI project MUST change the project-specific configuration
22-
variable by the project's next minor release. This change MAY result in a
23-
breaking change so caution should be exhibited when considering
24-
project-specific configuration variables.
25-
26-
If a Splunk-specific configuration variable is declared as stable in the GDI
27-
specification and later the OpenTelemetry specification declares a similar
28-
variable as stable, the GDI specification variable MUST be marked as deprecated
29-
by the next minor release. GDI projects MUST add the stable OpenTelemetry
30-
configuration variable and deprecate the Splunk-specific configuration variable
31-
by the next minor release. The GDI specification and GDI projects MUST remove
32-
the deprecated configuration variable at the next major release.
19+
project-specific configuration variable defined SHOULD be prefixed with
20+
`SPLUNK_` and MUST NOT be marked as stable unless added to the GDI
21+
specification. Upon resolution by the GDI specification, the GDI project MUST
22+
change the project-specific configuration variable by the project's next minor
23+
release. This change MAY result in a breaking change so caution should be
24+
exhibited when considering project-specific configuration variables.
25+
26+
Splunk-specific configuration variables defined in the GDI specification MUST
27+
be prefixed with `SPLUNK_`. If a Splunk-specific configuration variable is
28+
declared as stable in the GDI specification and later the OpenTelemetry
29+
specification declares a similar variable as stable, the GDI specification
30+
MUST adopt the OpenTelemetry configuration variable and SHOULD mark the GDI
31+
specification configuration variable as deprecated by the next minor release.
3332

3433
In addition to defining Splunk-specification configuration variables, the GDI
3534
specification MAY require specific OpenTelemetry configuration variables be
@@ -43,44 +42,37 @@ supported including a specific default value.
4342
| Name | Type | Default value | Required | Description |
4443
| :-----------------: | :----: | :-----------: | :------: | :-----------------------------------: |
4544
| SPLUNK_ACCESS_TOKEN | string | | Yes [1] | Access token added to exported data. |
46-
| SPLUNK_CONFIG | string | | No | Configuration file to use. |
45+
| SPLUNK_CONFIG | string | | No [2] | Configuration file to use. |
4746
| SPLUNK_REALM | string | | Yes [1] | Realm configured for the exporter endpoint. |
4847

49-
- [1]: Required whenever the Collector is configured to export data to a Splunk
50-
back-end. This is the default behavior for the Collector. If the Collector is
51-
configured as an agent and the agent is configured to send to a Collector
52-
running as a gateway then this is not required. If `SPLUNK_CONFIG` is defined
53-
then this is not required.
48+
- [1]: If the Collector is configured to export data to a Splunk back-end these
49+
options MUST be defined with valid values (this is the default behavior for
50+
the Collector). If the Collector is configured as an agent and the agent is
51+
configured to send to a Collector running as a gateway then these options are
52+
not required. If `SPLUNK_CONFIG` is defined then these options are not
53+
required.
54+
- [2]: Either `SPLUNK_ACCESS_TOKEN` and `SPLUNK_REALM` MUST be defined or
55+
`SPLUNK_CONFIG` MUST be defined. If `SPLUNK_ACCESS_TOKEN` and `SPLUNK_REALM`
56+
is defined, `SPLUNK_CONFIG` MAY be defined.
5457

5558
### Instrumentation Libraries
5659

57-
| Name | Type | Default value | Required | Description |
58-
| :----------------------------------: | :----: | :-----------: | :------: | :--------------------------------------------------------: |
59-
| SPLUNK_ACCESS_TOKEN | string | | No [1] | Access token added to exported data. |
60-
| SPLUNK_CONTEXT_SERVER_TIMING_ENABLED | boolean | `false` | No | Whether `Server-Timing` header is added to HTTP responses. |
60+
| Name | Type | Default value | Required | Description |
61+
| :----------------------------------: | :----: | :-----------: | :------: | :--------------------------------------------------------: |
62+
| OTEL_EXPORTER_JAEGER_ENDPOINT | string | `http://localhost:9080/v1/trace` | Yes | Where to export data if `OTEL_TRACES_EXPORTER=jaeger-thrift-splunk`. |
63+
| OTEL_EXPORTER_OTLP_ENDPOINT | string | `localhost:4317` | No | Where to export data if `OTEL_TRACES_EXPORTER=otlp`. |
64+
| OTEL_RESOURCE_ATTRIBUTES | string | `unknown_service[:<process>]` | Yes | Key/Value resource information. MUST define `service.name`. SHOULD define `deployment.environment`. |
65+
| OTEL_TRACES_EXPORTER | string | `jaeger-thrift-splunk` | Yes | Exported data format. MUST support `jaeger-thrift-splunk` and `otlp`. |
66+
| SPLUNK_ACCESS_TOKEN | string | | No [1] | Access token added to exported data. |
67+
| SPLUNK_CONTEXT_SERVER_TIMING_ENABLED | boolean | `false` | No [2] | Whether `Server-Timing` header is added to HTTP responses. |
6168

6269
- [1]: Not required if another system performs the authentication. For example,
6370
instrumentation libraries SHOULD send data to a locally running agent. The
6471
agent can define the access token that is used. If the component is
6572
configured to send data directly to a SaaS endpoint then this variable MUST
6673
be defined.
67-
68-
In addition, the following OpenTelemetry options MUST be supported:
69-
70-
- [OTEL_EXPORTER_JAEGER_ENDPOINT]
71-
- MUST default to `http://localhost:9080/v1/trace`
72-
- [OTEL_EXPORTER_OTLP_ENDPOINT]
73-
- MUST default to `localhost:4317`
74-
- [OTEL_RESOURCE_ATTRIBUTES]
75-
- MUST allow `service.name` to be defined and MUST offer a default, non-empty value
76-
- MUST allow `deployment.server` to be defined and MUST not send unless explicitly defined
77-
- MUST NOT suggest `deployment` to be used as the key
78-
- [OTEL_TRACE_ENABLED]
79-
- MUST default to `true`
80-
- MUST support `false` which disables emitting spans
81-
- [OTEL_TRACES_EXPORTER]
82-
- MUST offer `jaeger-thrift-splunk` and `otlp` as values
83-
- MUST default to `jaeger-thrift-splunk` value
74+
- [2]: If stitching of RUM spans and APM spans is desired then this parameter
75+
MUST be set to `true`.
8476

8577
## Environment variable alternatives
8678

0 commit comments

Comments
 (0)