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

Context aware error types based on ClickHouse error codes #250

Open
srikanthccv opened this issue Dec 16, 2023 · 1 comment
Open

Context aware error types based on ClickHouse error codes #250

srikanthccv opened this issue Dec 16, 2023 · 1 comment

Comments

@srikanthccv
Copy link
Member

Not every error is retryable. Some errors are permanent and retrying them makes no sense. The sync mode today retries all the errors forever and blocks everything else from getting ingested. There should be an error type-based retry mechanism and the exporters should return context aware errors to the caller instead of just returning err as is from the clickhouse-go client.

@srikanthccv
Copy link
Member Author

2024-04-12T17:18:22.026Z error clickhousetracesexporter/writer.go:385 Could not append span to batch: {"kind": "exporter", "data_type": "traces", "name": "clickhousetraces", "span": {"traceId": "", "spanId": "", "parentSpanId": "", "name": "TestingSpan", "durationNano": 0, "startTimeUnixNano": 11651379494838206464, "serviceName": "<nil-service-name>", "kind": 0, "statusCode": 0, "externalHttpMethod": "", "httpUrl": "", "httpMethod": "", "httpHost": "", "httpRoute": "", "httpCode": "", "msgSystem": "", "msgOperation": "", "externalHttpUrl": "", "component": "", "dbSystem": "", "dbName": "", "dbOperation": "", "peerService": "", "gRPCCode": "", "gRPCMethod": "", "rpcSystem": "", "rpcService": "", "rpcMethod": "", "responseStatusCode": "", "hasError": false, "errorID": "", "errorGroupID": "", "errorEvent": {"name": "", "timeUnixNano": 0, "isError": false, "attributeMap": "map[]"}, "traceModel": {"traceId": "", "spanId": "", "name": "TestingSpan", "durationNano": 0, "startTimeUnixNano": 11651379494838206464, "serviceName": "<nil-service-name>", "kind": 0, "statusCode": 0, "hasError": false, "references": [{"traceId": "", "spanId": "", "refType": "CHILD_OF"}], "tagMap": "map[k8s.pod.ip:10.5.78.213]", "event": "[]"}, "event": "[]", "tagMap": "map[k8s.pod.ip:10.5.78.213]"}, "error": "clickhouse: dateTime overflow. timestamp must be between 1900-01-01 00:00:00 and 2262-04-11 23:47:16"}

Without such context-aware error types, one garbage span can block the whole trace ingestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant