Try it free

Smartscape

  • Latest Dynatrace
  • Reference

This is the new Smartscape model, containing model definitions for entities that are stored in Smartscape on Grail.

In addition to the query examples below, you can find more query examples in DQL Smartscape commands.

Query

Get an overview of all Smartscape node types

smartscapeNodes "*"
| summarize count(), by: type

Get an overview of all Smartscape edges

smartscapeEdges "*"
| summarize count(), by:{ source_type, type, target_type }

Get all edges that start from hosts.

smartscapeEdges "*"
| filter source_type == "HOST"
| fields type, target_type
| dedup type, target_type

Load all Kubernetes entities.

smartscapeNodes "K8S_*"
| fieldsRemove k8s.object

Load all AWS entities.

smartscapeNodes "AWS_*"
| fieldsRemove aws.object

Load all Synthetic entities.

smartscapeNodes {"BROWSER_MONITOR",
"HTTP_MONITOR",
"NETWORK_AVAILABILITY_MONITOR",
"SYNTHETIC_LOCATION",
"CREDENTIAL_VAULT_ENTRY"}

Shared fields

AttributeTypeDescriptionExamples
custom_metadatarecordexperimental
A collection of additional metadata information imported to Dynatrace.
OperatorVersion:v0.9.0; cluster-name:ext-demo1
dt.smartscape_source.senderstringexperimental
Indicates the source agent that created the Smartscape node. Possible values include OS agent, z/OS agent, or technology-specific code module agents running standalone.
dynatrace_codemodule
host.additional_system_inforecordexperimental
Additional system information. Some attributes here are only available on certain systems (e.g. system.lpar exists only on AIX). Several attributes are numbered. E.g. attributes starting with system.processor_. will have the underscore programatically replaced with an index like [12], starting from [0]. Note that in these examples, a '_' is replaced with '[x]', where x is a number starting from 0.

dt.smartscape_source.sender MUST be one of the following:

ValueDescription
dynatrace_codemoduleAn agent with a particular technology running as a standalone.
dynatrace_osagentOS agent
dynatrace_zagentz/OS agent

Relationship types

Edge typeDescription
belongs_tostable
This is similar to an aggregation in UML. It is a many-to-many relationship without existential properties (the destination is not composed of the sources).
callsstable
Defines a "horizontal" relationship between two entities that "call" each other. The "calls" relation does not imply a parent/child or other strong structural relation but rather a dynamic communication association. Examples: Typical examples include services calling other services, but also services calling databases, queue brokers, or other infrastructure entities.
is_attached_tostable
Is (typically) exclusively attached to the instance (1-many)
is_part_ofstable
Defines if the instance is part of a cluster, similar to a composition in UML. The source (child) cannot exist without the destination (parent).
runs_onstable
Defines a "vertical" relation of an entity running on some other entity. It does not imply any composition or aggregation but only a looser association between the entities. One entity can run on multiple other entities. Examples: Service running on a POD, a CONTAINER or a HOST.
routes_tostable
Define network route to the instance Examples: EC2 route table routes to EC2 NAT Gateway EC2 VPC Peering Connection routes to VPC
containsstable
Relationship field that contains all contains-relationships as nested fields.
Opposite direction: belongs_to
instance_ofstable
Relationship field that contains all instance_of-relationships as nested fields.
Opposite direction: instantiates
balanced_bystable
Relationship field that contains all balanced_by-relationships as nested fields.
Opposite direction: balances
balancesstable
Relationship field that contains all balances-relationships as nested fields.
Opposite direction: balanced_by
usesstable
Similar to is_attached_to but in the opposite direction. Examples: EC2 Instance uses DHCP options, Auto Scaling Group uses EC2 Launch Template
updatesexperimental
Similar to uses but with a stronger connotation where the source actively updates or modifies the target. It implies that the source has some level of control or influence over the target. Examples: A synthetic monitor updates credentials in a credential vault entry.
is_assigned_toexperimental
Defines assignment relationship, where the source is assigned to the destination. Similar to is_attached_to, but introduced to preserve naming consistency Examples: A synthetic monitor is assigned to a frontend.
monitorsexperimental
Defines monitoring relationship, where the source monitors the destination. Examples: A synthetic monitor monitors a frontend. A synthetic monitor or OneAgent monitors a host.
seesexperimental
Defines a visibility relationship where the source configuration has discovered the destination entity but does not actively monitor it. Used alongside monitors to distinguish projects that are visible to a DA monitoring configuration from those that are actively monitored. Enables the UI to show which configuration sees or monitors a given project and to detect overlaps across configurations. Applies to static edges only; dynamic edges are out of scope. Examples: A DA monitoring configuration sees project.
same_asexperimental
Defines an equivalence relationship. Examples: A database instance is the same as a host process.

Network identification fields

AttributeTypeDescriptionExamples
interface_configrecord[]experimental
Network interface configuration, including IP address and network prefix length
[{'ip': '192.168.1.1', 'subnet_prefix_length': '24'}, {'ip': '2001:0db8:0000:0000:0000:8a2e:0370:7334', 'subnet_prefix_length': '64'}]
ipipAddress[]experimental
A collection of IP addresses that can be used to identify this entity.
['192.168.0.1', '10.10.10.10']; ['10.10.10.10']; ['2001:0000:130F:0000:0000:09C0:876A:130B']
macstring[]experimental
A collection of MAC addresses that can be used to identify this entity.
['4C:03:4F:5B:E8:89']
portlong[]experimental
A collection of layer 4 ports used to identify this entity.
[50000, 50001, 50002, 50003]