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

fix(config): test for completeness of config telemetry #4941

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

bm1549
Copy link

@bm1549 bm1549 commented Nov 25, 2024

What does this PR do?

Adds a test that verifies completeness of config telemetry by comparing directly against config_norm_rules.json. If a config key does not exist there, it is not processed by our telemetry backend. This is in-line with what we have in dd-trace-dotnet

This PR is open for review, but will not be merged in until the test passes (ie. all telemetry values are handled). We have. a Google sheet tracking proposed decisions (keep/ignore) and normalized config names

Motivation

Telemetry was thought to have been missing from our backend and it wasn't discovered until today. On adding this test, it appears that 118 (maybe less) config telemetry keys are missing

Current missing telemetry keys
  • appsec.apisecurity.enabled
  • appsec.apisecurity.sampledelay
  • appsec.blockedtemplategraphql
  • appsec.blockedtemplatehtml
  • appsec.blockedtemplatejson
  • appsec.eventtracking.enabled
  • appsec.eventtracking.mode
  • appsec.obfuscatorkeyregex
  • appsec.obfuscatorvalueregex
  • appsec.ratelimit
  • appsec.stacktrace.enabled
  • appsec.stacktrace.maxdepth
  • appsec.stacktrace.maxstacktraces
  • appsec.standalone.enabled
  • appsec.waftimeout
  • baggagemaxbytes
  • baggagemaxitems
  • civisagentlesslogsubmissionenabled
  • civisibilitytestsessionname
  • clientipenabled
  • clientipheader
  • cloudpayloadtagging.maxdepth
  • cloudpayloadtagging.requestsenabled
  • cloudpayloadtagging.responsesenabled
  • cloudpayloadtagging.rules.aws.eventbridge.expand
  • cloudpayloadtagging.rules.aws.eventbridge.request
  • cloudpayloadtagging.rules.aws.eventbridge.response
  • cloudpayloadtagging.rules.aws.kinesis.expand
  • cloudpayloadtagging.rules.aws.kinesis.request
  • cloudpayloadtagging.rules.aws.kinesis.response
  • cloudpayloadtagging.rules.aws.s3.expand
  • cloudpayloadtagging.rules.aws.s3.request
  • cloudpayloadtagging.rules.aws.s3.response
  • cloudpayloadtagging.rules.aws.sns.expand
  • cloudpayloadtagging.rules.aws.sns.request
  • cloudpayloadtagging.rules.aws.sns.response
  • cloudpayloadtagging.rules.aws.sqs.expand
  • cloudpayloadtagging.rules.aws.sqs.request
  • cloudpayloadtagging.rules.aws.sqs.response
  • codeoriginforspans.enabled
  • crashtracking.enabled
  • dbmpropagationmode
  • dsmenabled
  • dynamicinstrumentationenabled
  • experimental.enablegetrumdata
  • experimental.runtimeid
  • flakytestretriescount
  • flushinterval
  • flushminspans
  • grpc.client.error.statuses
  • grpc.server.error.statuses
  • headertags
  • iast.cookiefilterpattern
  • iast.deduplicationenabled
  • iast.maxconcurrentrequests
  • iast.maxcontextoperations
  • iast.redactionenabled
  • iast.redactionnamepattern
  • iast.redactionvaluepattern
  • iast.requestsampling
  • iast.telemetryverbosity
  • inferredproxyservicesenabled
  • injectionenabled
  • installsignature.id
  • installsignature.time
  • installsignature.type
  • instrumentation_config_id
  • isazurefunction
  • iscivisibility
  • isearlyflakedetectionenabled
  • isflakytestretriesenabled
  • isgituploadenabled
  • isintelligenttestrunnerenabled
  • ismanualapienabled
  • istestdynamicinstrumentationenabled
  • langchain.spancharlimit
  • langchain.spanpromptcompletionsamplerate
  • legacybaggageenabled
  • llmobs.agentlessenabled
  • llmobs.enabled
  • llmobs.mlapp
  • loginjection
  • loglevel
  • memcachedcommandenabled
  • openailogsenabled
  • openaispancharlimit
  • profiling.longlivedthreshold
  • profiling.sourcemap
  • protocolversion
  • querystringobfuscation
  • remoteconfig.enabled
  • remoteconfig.pollinterval
  • reporthostname
  • runtimemetrics
  • samplerate
  • sampler.ratelimit
  • sampler.rules
  • sampler.samplerate
  • sampler.spansamplingrules
  • spancomputepeerservice
  • spanleakdebug
  • spanremoveintegrationfromservice
  • startuplogs
  • tags.env
  • tags.runtime-id
  • tags.service
  • tags.version
  • tagsheadermaxlength
  • telemetry.dependencycollection
  • telemetry.heartbeatinterval
  • telemetry.logcollection
  • traceenabled
  • traceid128bitgenerationenabled
  • traceid128bitloggingenabled
  • tracepropagationextractfirst
  • tracepropagationstyle.extract
  • tracepropagationstyle.inject
  • tracepropagationstyle.otelpropagators

Plugin Checklist

Additional Notes

This is my first PR in this repo and I'm pretty rusty in Node.js - please give me all of your nit picks!

@bm1549 bm1549 requested a review from a team as a code owner November 25, 2024 23:19
Copy link

Overall package size

Self size: 8.14 MB
Deduped: 94.65 MB
No deduping: 94.99 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.2.2 | 29.27 MB | 29.27 MB | | @datadog/native-appsec | 8.3.0 | 19.37 MB | 19.38 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.5.0 | 2.51 MB | 2.65 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.0.1 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | int64-buffer | 0.1.10 | 49.18 kB | 49.18 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | path-to-regexp | 0.1.10 | 6.38 kB | 6.38 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

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

Successfully merging this pull request may close these issues.

1 participant