- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`Dynamic instrumentation allows you to add instrumentation into your running production systems without any restarts and at any location in your application’s code, including third-party libraries. You can add or modify telemetry for logs, metrics, spans, and corresponding tagging, from the Datadog UI. Dynamic Instrumentation has low overhead and has no side effects on your system.
If you are interested in trying out the latest user experience improvements for Dynamic Instrumentation, consider opting into the autocomplete and search Preview.
Dynamic Instrumentation requires the following:
dd-trace-java
1.34.0 or higher.dd-trace-py
2.2.0 or higher.dd-trace-dotnet
2.54.0 or higher.dd-trace-js
5.39.0 or higher.dd-trace-rb
2.9.0 or higher.dd-trace-php
1.5.0 or higher.service
, env
, and version
are applied to your deployment.debugger_read
) permission is required to access the Dynamic Instrumentation pagedebugger_write
) permission is required to create or modify instrumentations.debugger_capture_variables
) permission is required to use the Capture method parameters and local variables option.For more information about roles and on how to assign roles to users, see Role Based Access Control.
Dynamic Instrumentation creates “dynamic logs” that are sent to Datadog and appear alongside your regular application logs.
If you use Exclusion filters, ensure Dynamic Instrumentation logs are not filtered:
source:dd_debugger
tag. All Dynamic Instrumentation logs have this source.To enable Dynamic Instrumentation on a service, go to the in-app setup page.
For more detailed instructions, select your runtime below:
Dynamic Instrumentation can help you understand what your application is doing at runtime. By adding a Dynamic Instrumentation probe you are exporting additional data from your application, without the need to change code or redeploy it.
A probe allows you to collect data from specific points in your code without halting the execution of the program.
Think of using probes as enhancing your observability by adding dynamic logs, metrics, and spans to a running application without needing to change code, deploy it, or restart a service. You can gather data immediately without disturbing the user experience or requiring lengthy deployments.
As a developer, you can also think of a probe as a “non-breaking breakpoint”. In traditional debugging, a breakpoint is a point in the program where the execution stops, allowing the developer to inspect the state of the program at that point. However, in real-world production environments, it’s not practical or even possible to stop the execution of the program. Probes fill in this gap by allowing you to inspect variable state in production environments in a non-intrusive way.
All probe types require the same initial setup:
See the individual probe types below for specific creation steps for each probe type.
Alternatively, you can create a probe from these other contexts:
A log probe emits a log when it executes.
To create a log probe:
Log probes are enabled by default on all service instances that match the specified environment and version. They are rate-limited to execute at most 5000 times per second, on each instance of your service.
You must set a log message template on every log probe. The template supports embedding expressions inside curly brackets. For example: User {user.id} purchased {count(products)} products
.
You can also set a condition on a log probe using the expression language. The expression must evaluate to a Boolean. The probe executes if the expression is true, and does not capture or emit any data if the expression is false.
(In Preview) If you enable Capture method parameters and local variables on the log probe, all execution context is added the log event:
Probes with this setting enabled are rate-limited to one hit per second.
Warning: The captured data may contain sensitive information, including personal data, passwords, and secrets such as AWS keys.
To ensure this information is properly redacted:
debugger_capture_variables
) permission.Alternatively, if you need to log this data but want to mitigate the risk associated with it being accessible in the Datadog product, you can limit which users in your organization can view the captured data by setting up a Restriction query on source:dd_debugger
.
A metric probe emits a metric when it executes.
To create a metric probe:
dynamic.instrumentation.metric.probe.
.Metric probes are automatically enabled on all service instances that match the configured environment and version. Metric probes are not rate limited and execute every time the method or line is invoked.
Dynamic Instrumentation metric probes support the following metric types:
A span probe emits a span when a method is executed.
To create a span probe:
You can use a span probe as an alternative to creating new spans with Custom Instrumentation. If the method throws an exception, the details of the exception are associated with the newly created span’s error
tag.
A span tag probe adds a tag value to an existing span. You can add a tag either to the active span or to the service entry span. Keep in mind that internal spans are not indexed by default and so might not be searchable in APM.
To create a span tag probe:
You can use a span tag probe as an alternative to using Custom Instrumentation to add tags in code.
추가 유용한 문서, 링크 및 기사: