-
Notifications
You must be signed in to change notification settings - Fork 10
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
[crashtracker] Implement telemetry for RFC5 #741
Conversation
BenchmarksComparisonBenchmark execution time: 2024-11-22 15:47:20 Comparing candidate commit f4b295e in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 51 metrics, 2 unstable metrics. CandidateCandidate benchmark detailsGroup 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
Group 11
Group 12
BaselineOmitted due to size. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #741 +/- ##
==========================================
+ Coverage 70.57% 70.84% +0.27%
==========================================
Files 296 297 +1
Lines 43246 43568 +322
==========================================
+ Hits 30519 30865 +346
+ Misses 12727 12703 -24
|
745232c
to
5d60fdb
Compare
5d60fdb
to
83ed9ae
Compare
Sample output looks like this: {
"api_version": "v2",
"tracer_time": 1568898000,
"runtime_id": "xyz",
"seq_id": 1,
"application": {
"service_name": "foo",
"service_version": "bar",
"language_name": "native",
"language_version": "unknown",
"tracer_version": "unknown"
},
"host": {
"hostname": "COMP-M63PJ2N3HN",
"os": "macos",
"os_version": "23.6.0"
},
"request_type": "logs",
"payload": [
{
"message": "{\"counters\":{\"not_profiling\":0,\"collecting_sample\":1},\"data_schema_version\":\"1.0\",\"error\":{\"is_crash\":true,\"kind\":\"UnixSignal\",\"source_type\":\"Crashtracking\",\"stack\":{\"format\":\"Datadog Crashtracker 1.0\",\"frames\":[{\"ip\":\"0x0\",\"build_id\":\"abcde0x0\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo0\",\"column\":0,\"file\":\"banana0.rs\",\"function\":\"Bar::baz0\",\"line\":1},{\"ip\":\"0x1\",\"build_id\":\"abcde0x1\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo1\",\"column\":2,\"file\":\"banana1.rs\",\"function\":\"Bar::baz1\",\"line\":3},{\"ip\":\"0x2\",\"build_id\":\"abcde0x2\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo2\",\"column\":4,\"file\":\"banana2.rs\",\"function\":\"Bar::baz2\",\"line\":5},{\"ip\":\"0x3\",\"build_id\":\"abcde0x3\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo3\",\"column\":6,\"file\":\"banana3.rs\",\"function\":\"Bar::baz3\",\"line\":7},{\"ip\":\"0x4\",\"build_id\":\"abcde0x4\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo4\",\"column\":8,\"file\":\"banana4.rs\",\"function\":\"Bar::baz4\",\"line\":9},{\"ip\":\"0x5\",\"build_id\":\"abcde0x5\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo5\",\"column\":10,\"file\":\"banana5.rs\",\"function\":\"Bar::baz5\",\"line\":11},{\"ip\":\"0x6\",\"build_id\":\"abcde0x6\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo6\",\"column\":12,\"file\":\"banana6.rs\",\"function\":\"Bar::baz6\",\"line\":13},{\"ip\":\"0x7\",\"build_id\":\"abcde0x7\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo7\",\"column\":14,\"file\":\"banana7.rs\",\"function\":\"Bar::baz7\",\"line\":15},{\"ip\":\"0x8\",\"build_id\":\"abcde0x8\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo8\",\"column\":16,\"file\":\"banana8.rs\",\"function\":\"Bar::baz8\",\"line\":17},{\"ip\":\"0x9\",\"build_id\":\"abcde0x9\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo9\",\"column\":18,\"file\":\"banana9.rs\",\"function\":\"Bar::baz9\",\"line\":19}]}},\"incomplete\":true,\"metadata\":{\"library_name\":\"libdatadog\",\"library_version\":\"1.2.3\",\"family\":\"native\",\"tags\":[\"service:foo\",\"service_version:bar\",\"runtime-id:xyz\",\"language:native\"]},\"os_info\":{\"architecture\":\"unknown\",\"bitness\":\"unknown bitness\",\"os_type\":\"Unknown\",\"version\":\"Unknown\"},\"proc_info\":{\"pid\":1},\"sig_info\":{\"si_addr\":\"0x0000000000001234\",\"si_code\":1,\"si_code_human_readable\":\"SEGV_BNDERR\",\"si_signo\":11,\"si_signo_human_readable\":\"SIGSEGV\"},\"span_ids\":[{\"id\":\"42\",\"thread_name\":\"thread1\"},{\"id\":\"24\",\"thread_name\":\"thread2\"}],\"timestamp\":\"2019-09-19 13:00:00 UTC\",\"trace_ids\":[{\"id\":\"345\",\"thread_name\":\"thread111\"},{\"id\":\"666\",\"thread_name\":\"thread222\"}],\"uuid\":\"1d6b97cb-968c-40c9-af6e-e4b4d71e8781\"}",
"level": "ERROR",
"count": 1,
"stack_trace": "{\"format\":\"Datadog Crashtracker 1.0\",\"frames\":[{\"ip\":\"0x0\",\"build_id\":\"abcde0x0\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo0\",\"column\":0,\"file\":\"banana0.rs\",\"function\":\"Bar::baz0\",\"line\":1},{\"ip\":\"0x1\",\"build_id\":\"abcde0x1\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo1\",\"column\":2,\"file\":\"banana1.rs\",\"function\":\"Bar::baz1\",\"line\":3},{\"ip\":\"0x2\",\"build_id\":\"abcde0x2\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo2\",\"column\":4,\"file\":\"banana2.rs\",\"function\":\"Bar::baz2\",\"line\":5},{\"ip\":\"0x3\",\"build_id\":\"abcde0x3\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo3\",\"column\":6,\"file\":\"banana3.rs\",\"function\":\"Bar::baz3\",\"line\":7},{\"ip\":\"0x4\",\"build_id\":\"abcde0x4\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo4\",\"column\":8,\"file\":\"banana4.rs\",\"function\":\"Bar::baz4\",\"line\":9},{\"ip\":\"0x5\",\"build_id\":\"abcde0x5\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo5\",\"column\":10,\"file\":\"banana5.rs\",\"function\":\"Bar::baz5\",\"line\":11},{\"ip\":\"0x6\",\"build_id\":\"abcde0x6\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo6\",\"column\":12,\"file\":\"banana6.rs\",\"function\":\"Bar::baz6\",\"line\":13},{\"ip\":\"0x7\",\"build_id\":\"abcde0x7\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo7\",\"column\":14,\"file\":\"banana7.rs\",\"function\":\"Bar::baz7\",\"line\":15},{\"ip\":\"0x8\",\"build_id\":\"abcde0x8\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo8\",\"column\":16,\"file\":\"banana8.rs\",\"function\":\"Bar::baz8\",\"line\":17},{\"ip\":\"0x9\",\"build_id\":\"abcde0x9\",\"build_id_type\":\"GNU\",\"file_type\":\"ELF\",\"path\":\"/usr/bin/foo9\",\"column\":18,\"file\":\"banana9.rs\",\"function\":\"Bar::baz9\",\"line\":19}]}",
"tags": "data_schema_version:1.0,incomplete:true,is_crash:true,uuid:1d6b97cb-968c-40c9-af6e-e4b4d71e8781,not_profiling:0,collecting_sample:1,si_addr:0x0000000000001234,si_code:1,si_code_human_readable:SEGV_BNDERR,si_signo:1,si_signo_human_readable:SEGV_BNDERR",
"is_sensitive": true
}
]
} |
ccfae94
to
206fe5b
Compare
What does this PR do?
What it says on the tin
Motivation
A format we can't actually upload isn't that useful.
Additional Notes
Some fields are duplicated from the
CrashInfo
into telemetry headers, but I think there is value in posting precisely the RFC5 struct, and in having searchable telemetry headers.How to test the change?
Added a version of the additional telemetry test, with additional checks.