Skip to content
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

Add 'debug' exporter #7773

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .chloggen/codeboten_debug-exporter-2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: debugexporter

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Add debug exporter, which replaces the logging exporter

# One or more tracking issues or pull requests related to the change
issues: [7769]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
16 changes: 16 additions & 0 deletions .chloggen/codeboten_debug-exporter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: deprecation

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: loggingexporter

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Mark the logging exporter as deprecated, in favour of debug exporter

# One or more tracking issues or pull requests related to the change
issues: [7769]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
5 changes: 5 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ updates:
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "gomod"
directory: "/exporter/debugexporter"
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "gomod"
directory: "/exporter/loggingexporter"
schedule:
Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ check-contrib:
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/connector/forwardconnector=$(CURDIR)/connector/forwardconnector"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/consumer=$(CURDIR)/consumer"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/exporter=$(CURDIR)/exporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/exporter/debugexporter=$(CURDIR)/exporter/debugexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/exporter/loggingexporter=$(CURDIR)/exporter/loggingexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/exporter/otlpexporter=$(CURDIR)/exporter/otlpexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector/exporter/otlphttpexporter=$(CURDIR)/exporter/otlphttpexporter"
Expand Down Expand Up @@ -352,6 +353,7 @@ restore-contrib:
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/connector/forwardconnector"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/consumer"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/exporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/exporter/debugexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/exporter/loggingexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/exporter/otlpexporter"
@$(MAKE) -C $(CONTRIB_PATH) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector/exporter/otlphttpexporter"
Expand Down
4 changes: 2 additions & 2 deletions client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,14 @@
// authprinter:
// attribute: subject
// exporters:
// logging:
// debug:
// service:
// extensions: [oidc]
// pipelines:
// traces:
// receivers: [otlp]
// processors: [authprinter]
// exporters: [logging]
// exporters: [debug]
package client // import "go.opentelemetry.io/collector/client"

import (
Expand Down
4 changes: 2 additions & 2 deletions cmd/builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ processors:
batch:

exporters:
logging:
debug:

service:
pipelines:
Expand All @@ -44,7 +44,7 @@ service:
processors:
- batch
exporters:
- logging
- debug
EOF
$ /tmp/dist/otelcol-custom --config=/tmp/otelcol.yaml
```
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/internal/builder/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ func TestGenerateAndCompile(t *testing.T) {
fmt.Sprintf("go.opentelemetry.io/collector/consumer => %s/consumer", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/connector => %s/connector", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/exporter => %s/exporter", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/exporter/debugexporter => %s/exporter/debugexporter", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/exporter/loggingexporter => %s/exporter/loggingexporter", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/exporter/otlpexporter => %s/exporter/otlpexporter", workspaceDir),
fmt.Sprintf("go.opentelemetry.io/collector/exporter/otlphttpexporter => %s/exporter/otlphttpexporter", workspaceDir),
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/internal/config/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ dist:
receivers:
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.80.0
exporters:
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.80.0
- gomod: go.opentelemetry.io/collector/exporter/loggingexporter v0.80.0
- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.80.0
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.80.0
Expand Down
4 changes: 2 additions & 2 deletions cmd/builder/test/core.builder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ receivers:
path: ${WORKSPACE_DIR}

exporters:
- import: go.opentelemetry.io/collector/exporter/loggingexporter
- import: go.opentelemetry.io/collector/exporter/debugexporter
gomod: go.opentelemetry.io/collector v0.80.0
path: ${WORKSPACE_DIR}

Expand All @@ -33,7 +33,7 @@ replaces:
- go.opentelemetry.io/collector/consumer => ${WORKSPACE_DIR}/consumer
- go.opentelemetry.io/collector/connector => ${WORKSPACE_DIR}/connector
- go.opentelemetry.io/collector/exporter => ${WORKSPACE_DIR}/exporter
- go.opentelemetry.io/collector/exporter/loggingexporter => ${WORKSPACE_DIR}/exporter/loggingexporter
- go.opentelemetry.io/collector/exporter/debugexporter => ${WORKSPACE_DIR}/exporter/debugexporter
- go.opentelemetry.io/collector/extension => ${WORKSPACE_DIR}/extension
- go.opentelemetry.io/collector/extension/auth => ${WORKSPACE_DIR}/extension/auth
- go.opentelemetry.io/collector/extension/zpagesextension => ${WORKSPACE_DIR}/extension/zpagesextension
Expand Down
4 changes: 2 additions & 2 deletions cmd/builder/test/core.otel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ receivers:
processors:

exporters:
logging:
debug:

service:
extensions: [zpages]
Expand All @@ -19,4 +19,4 @@ service:
- otlp
processors: []
exporters:
- logging
- debug
4 changes: 2 additions & 2 deletions cmd/builder/test/default.otel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ receivers:
processors:

exporters:
logging:
debug:

service:
extensions: [zpages]
Expand All @@ -19,4 +19,4 @@ service:
- otlp
processors: []
exporters:
- logging
- debug
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@ processors:
check_interval: 5s

exporters:
logging:
debug:
loglevel: debug

service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [logging]
exporters: [debug]
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [logging]
exporters: [debug]

extensions: [memory_ballast, zpages]
1 change: 1 addition & 0 deletions connector/forwardconnector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector v0.80.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.80.0 // indirect
go.opentelemetry.io/collector/confmap v0.80.0 // indirect
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0013 // indirect
Expand Down
1 change: 1 addition & 0 deletions connector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.19

require (
github.com/stretchr/testify v1.8.4
go.opentelemetry.io/collector v0.80.0
Copy link
Member

Choose a reason for hiding this comment

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

Why this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i ran make gotidy and this happened

go.opentelemetry.io/collector/component v0.80.0
go.opentelemetry.io/collector/consumer v0.80.0
go.opentelemetry.io/collector/pdata v1.0.0-rcv0013
Expand Down
18 changes: 9 additions & 9 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,13 @@ receivers:
regex: '.*grpc_io.*'
action: drop
exporters:
logging:
debug:
service:
pipelines:
metrics:
receivers: [prometheus]
processors: []
exporters: [logging]
exporters: [debug]
```

### zPages
Expand All @@ -109,21 +109,21 @@ extensions:
exporters](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter#general-information)
can be configured to inspect the data being processed by the Collector.

For live troubleshooting purposes consider leveraging the `logging` exporter,
For live troubleshooting purposes consider leveraging the `debug` exporter,
which can be used to confirm that data is being received, processed and
exported by the Collector.

```yaml
receivers:
zipkin:
exporters:
logging:
debug:
service:
pipelines:
traces:
receivers: [zipkin]
processors: []
exporters: [logging]
exporters: [debug]
```

Get a Zipkin payload to test. For example create a file called `trace.json`
Expand Down Expand Up @@ -161,21 +161,21 @@ $ curl -X POST localhost:9411/api/v2/spans -H'Content-Type: application/json' -d
You should see a log entry like the following from the Collector:

```
2020-11-11T04:12:33.089Z INFO loggingexporter/logging_exporter.go:296 TraceExporter {"#spans": 1}
2020-11-11T04:12:33.089Z INFO debugexporter/debug_exporter.go:296 TraceExporter {"#spans": 1}
Copy link
Member

Choose a reason for hiding this comment

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

Call me paranoid, but can you bump the date to a date closer to today? It might be just me, but I would be really confused seeing this timestamp and no versions of the collector around that date having this component.

```

You can also configure the `logging` exporter so the entire payload is printed:
You can also configure the `debug` exporter so the entire payload is printed:

```yaml
exporters:
logging:
debug:
verbosity: detailed
```

With the modified configuration if you re-run the test above the log output should look like:

```
2020-11-11T04:08:17.344Z DEBUG loggingexporter/logging_exporter.go:353 ResourceSpans #0
2020-11-11T04:08:17.344Z DEBUG debugexporter/debug_exporter.go:353 ResourceSpans #0
Resource labels:
-> service.name: Str(api)
ScopeSpans #0
Expand Down
6 changes: 3 additions & 3 deletions examples/local/otel-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@ processors:
check_interval: 5s

exporters:
logging:
debug:
verbosity: detailed

service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [logging]
exporters: [debug]
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [logging]
exporters: [debug]

extensions: [memory_ballast, zpages]
1 change: 1 addition & 0 deletions exporter/debugexporter/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ../../Makefile.Common
39 changes: 39 additions & 0 deletions exporter/debugexporter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Debug Exporter

| Status | |
| ------------------------ |-----------------------|
| Stability | [Development] |
| Supported pipeline types | traces, metrics, logs |
| Distributions | [core], [contrib] |

Exports data to the console via zap.Logger.

Supported pipeline types: traces, metrics, logs

## Getting Started

The following settings are optional:

- `verbosity` (default = `normal`): the verbosity of the logging export
(detailed|normal|basic). When set to `detailed`, pipeline data is verbosely
logged.
- `sampling_initial` (default = `2`): number of messages initially logged each
second.
- `sampling_thereafter` (default = `500`): sampling rate after the initial
messages are logged (every Mth message is logged). Refer to [Zap
docs](https://godoc.org/go.uber.org/zap/zapcore#NewSampler) for more details.
on how sampling parameters impact number of messages.

Example:

```yaml
exporters:
debug:
verbosity: detailed
sampling_initial: 5
sampling_thereafter: 200
```

[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib
[core]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol
[Development]: https://github.com/open-telemetry/opentelemetry-collector#in-development
Loading