- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Datadog automatically discovers the dependencies for an instrumented service, such as databases, queues, or third-party APIs, even if that dependency hasn’t been directly instrumented. By analyzing outbound requests from your instrumented services, Datadog infers the presence of these dependencies and collects associated performance metrics.
Explore inferred services in the [Service Catalog][1] by filtering entries by entity type, such as database, queue, or third-party API. Each [service page][2] is tailored to the type of service you are investigating. For instance, database service pages show database-specific insights and include database monitoring data if you are using [Database Monitoring][3].
To see inferred services, you must enable some Datadog Agent configurations.
For Datadog Agent versions 7.55.1 or later, add the following to your datadog.yaml
configuration file:
datadog.yaml
apm_config:
compute_stats_by_span_kind: true
peer_tags_aggregation: true
Alternatively, set these environment variables in your Datadog Agent configuration:
DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true
DD_APM_PEER_TAGS_AGGREGATION=true
If you are using Helm, include these environment variables in your values.yaml
file.
For Datadog Agent versions 7.50.3 through 7.54.1, add the following to your datadog.yaml
configuration file:
datadog.yaml
apm_config:
compute_stats_by_span_kind: true
peer_tags_aggregation: true
peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","cassandra.keyspace","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]
Alternatively, set these environment variables in your Datadog Agent configuration:
DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true
DD_APM_PEER_TAGS_AGGREGATION=true
DD_APM_PEER_TAGS='["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","cassandra.keyspace","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]'
If you are using Helm, include these environment variables in your values.yaml
file.
For the OpenTelemetry Collector, the minimum recommended version is opentelemetry-collector-contrib
v0.95.0 or later. In that case, update this configuration:
connectors:
datadog/connector:
traces:
compute_stats_by_span_kind: true
peer_tags_aggregation: true
peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]
If your Collector version is below v0.95.0, update the following Collector configuration:
exporters:
datadog:
traces:
compute_stats_by_span_kind: true
peer_tags_aggregation: true
peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]
Example: collector.yaml.
To determine the names and types of the inferred service dependencies, Datadog uses standard span attributes and maps them to peer.*
attributes. For example, inferred external APIs use the default naming scheme net.peer.name
like api.stripe.com
, api.twilio.com
, and us6.api.mailchimp.com
. Inferred databases use the default naming scheme db.instance
.
Peer Tag | Source Attributes |
---|---|
peer.aws.dynamodb.table | tablename |
peer.aws.kinesis.stream | streamname |
peer.aws.s3.bucket | bucketname , aws.s3.bucket |
peer.aws.sqs.queue | queuename |
peer.cassandra.contact.points | db.cassandra.contact.points |
peer.couchbase.seed.nodes | db.couchbase.seed.nodes |
peer.db.name | db.name , mongodb.db , db.instance , cassandra.keyspace , db.namespace |
peer.db.system | db.system |
peer.hostname | peer.hostname , hostname , net.peer.name , db.hostname , network.destination.name , grpc.host , http.host , server.address , http.server_name |
peer.kafka.bootstrap.servers | messaging.kafka.bootstrap.servers |
peer.messaging.destination | topicname , messaging.destination , messaging.destination.name , messaging.rabbitmq.exchange , amqp.destination , amqp.queue , amqp.exchange , msmq.queue.path , aws.queue.name |
peer.messaging.system | messaging.system |
peer.rpc.service | rpc.service |
peer.rpc.system | rpc.system |
peer.service | peer.service |
With inferred services, service dependencies are automatically detected from existing span attributes. As a result, changing service names (using the service
tag) is not required to identify these dependencies.
Enable DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED
to ensures no Datadog integration sets service names that are different from the default global service name. This also improves how service-to-service connections and inferred services are represented in Datadog visualizations, across all supported tracing library languages and integrations.
service:<DD_SERVICE>
).For instructions on how to remove service overrides and migrate to inferred services, see the [Service Overrides guide][4].
추가 유용한 문서, 링크 및 기사: