-
Notifications
You must be signed in to change notification settings - Fork 833
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
OTLPExporterBase reports connection issues to otel sink #4444
Comments
I think we don't log to the console anywhere except for when the diagnostics logging is turned on. diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.WARN); This is specifically intended for troubleshooting and having that info during troubleshooting is important. To turn it off you can remove the line or set The same is true for the |
@pichlermarc I set up the logger the way in my initial post to get log telemetry for my applications. AFAIK the If this is currently not supported, is there another way how I can send log data to an otel sink? |
I've taken the config provided above but was unable to reproduce this without explicitly turning SDK diagnostics logging on. Could you try to reproduce it using a fork of the following repo? Using that repo I was only able to get the output you described when a SDK diagnostics logging is turned on (see line 8 of index.ts) |
@pichlermarc I am on it. |
I reproduced it. Add And then instead of just add these lines: import { NodeSDK } from "@opentelemetry/sdk-node";
//....
process.env.OTEL_LOG_LEVEL = "info"; // doesn't matter if info, warn, only FATAL will prevent log spam
const sdk = new NodeSDK({
resourceDetectors: [], // we are using our own
}); Constructing empty My scenario involves passing multiple OTEL variables by the orchestrator, one of them controls the log level |
Hi @Seikilos thanks for trying that out.
These two are both equivalent:
You can set What setting It's rather confusing, but there is a specification issue to clarify this behavior: open-telemetry/opentelemetry-specification#920 The way forward here is to not use |
@pichlermarc I've seen the mentioned issue with the "clarification", the last comment also states, that it needs to be clarified. Maybe a simple note on this page https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#general-sdk-configuration for Probably just add something like
? Regardless of that: Thank you for clarifying this! 👍 |
What happened?
Steps to Reproduce
Expected Result
Nothing
Actual Result
Additional Details
I regard telemetry as being optional, e.g. when telemetry sink is available, it should send data to it. Sometimes the otel receiver is in maintenance, etc. This causes the applications to spam ECONNRESET error messages. Since they are batched, they sometimes come through to the otel receiver when it becomes available and spam the observability platform with errors, that the service could not connect to the destination.
IMHO this is undesired (but I am open for more feedback on my view!) or at least the developers should be able to filter requests on OTLPExporterError. But afaik I have not been able to find a filter behaviour on
OTLPExporterError
or his parent classesOpenTelemetry Setup Code
package.json
Relevant log output
No response
The text was updated successfully, but these errors were encountered: