-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Azure Data Explorer - Ingestion Failures - BadRequest_NoRecordsOrWrongFormat #26651
Comments
Pinging code owners:
See Adding Labels via Comments if you do not have permissions to add labels yourself. |
Hello @akakarikos, the trace data is serialized as multi-json as there can be batching. There is no user preference to choose between JSON and MultiJSON. Does this lead to a data-loss when sampled ? The root cause of these ingestion failures are possibly when empty JSON files are sent for ingestion. If there is no data loss, this can be ignored |
Hi @ag-ramachandran and thanks for your answer. Unfortunately, this leads to a data loss. The tables for traces and logs don't get updated with new logs/traces coming in. Have you come across such a situation before? |
@ag-ramachandran I just checked the console logs of the OTel collector and came across the below. It is referring to the Azure Monitor exporter, but I am wondering if this is related to the ingestion failures of the ADX. Although after that error, the console, continued to output logs and traces.
|
Hi @akakarikos Azure monitor has a separate exporter that is not related to ADX exporter. Monitor is a SaaS solution for observability and uses ADX internally for storage. Regarding data loss, it will be interesting if this can be verified. The error is because there was an ingestion and the file sent for ingestion was 0 bytes. So this is not a data loss scenario as i think of it. |
You should be able to see the last failure running
Once you have this , If you can run
This will show if all records subsequently are failing if this is a 0 result set.
|
Thanks @ag-ramachandran. Yes, I'm taking a 0 result set so all subsequent calls are failing. Any ideas on how could we troubleshoot further?
We have stopped getting logs and traces for specific microservices, so I think there is data loss or I am missing something. |
Hello @akakarikos , Sorry for the delay, was away yesterday. a) For troubleshooting, there are a few things we can look at. Are we using queued mode or managed mode in the exporter config. You can execute these commands to see when the last failure was at. b) Now if we assume that all of these ingestions failures point to the 0 file size ingestion, the next step would be to see why there is a 0 file size export. This will more likely be something that has changed in the OTEL configuration than something on Kusto. Do we see any logs on the exporter side in OTEL that reports any failures ? c) Are there any ingestion commands that are coming in at all. You can change the database name and run the query below and see what the latest ingestion was on ? d) It is strange that ingestion seems to be not happening. Was just tracking server side telemetry, there was an ingestion at 2023-09-13T23:59:53.3262871Z
Status of this ingestion was success, So it is surprising that you mention no traces are coming in
|
Hello @ag-ramachandran! Big thanks for your support and detailed guidance. So, what I did as a last option yesterday, was to kill/restart the specific pod that didn't emit any telemetry to ADX. After doing that, it started working again. It's really strange as I couldn't find the root cause behind this - how did it suddenly stop emitting data. I think we can close this for now, and if it occurs again, I will touch base with my findings. Out of curiosity, how do you track the server-side telemetry that you mentioned? |
Hello @akakarikos, Good Evening. Thanks for the confirmation.
Being a PaaS service, we track server telemetry to maintain server health. This is Kusto built in. Given a specific operation id, we can track if there is something erroneous happening on the server and track it. Note that the statistics on operations with respect to the provisioned service health (not at a user ops level)
Sure, we can close the issue, you can reach me at ramacg (at) ms (dot) com in case you need a call further for any troubleshooting! |
Hey @ag-ramachandran! That sounds great! Thanks for your explanation and support on this matter. |
Component(s)
exporter/azuredataexplorer
What happened?
Description
When exporting to Azure Data Explorer exporter, there are several ingestion failures when ingesting for the OMNITELLogs and OMNITELTraces tables. One example of the error is the below:
Steps to Reproduce
Not specific steps. Just set up an application with the OTel collector that exports to ADX exporter.
Expected Result
The logs and traces are successfully exported and ingested by the Azure Data Explorer.
Actual Result
There are multiple ingestion failures emitted by the Azure Data Explorer.
Collector version
0.80.0
Environment information
Environment
Docker image deployed in AKS.
OS: linux amd64
OpenTelemetry Collector configuration
Log output
No response
Additional context
Is there a way to select the format of the ingestion between JSON and MultiJSON?
The text was updated successfully, but these errors were encountered: