This is a general description of the unified analysis extension YAML file and ways to create custom visualizations and configure cards, dashboards, and injections.
To customize the details screen, start with the detailsSettings
and specify the types of information to be included on a unified analysis page. This enables you to customize the page to show all of the data points, charts, and visuals that are most relevant and beneficial to you.
detailsSettings:staticContent:showProblems: trueshowProperties: trueshowTags: trueshowGlobalFilter: trueshowAddTag: truelayout:autoGenerate: falsecards:- key: cpu_memtype: CHART_GROUP- key: diskstype: ENTITIES_LIST
staticContent
Enable or disable static elements like problems, properties, tags, global filter and Add tag option.
showProblems
true
, the details screen shows the problem card.showProperties
true
, the details screem shows the properties card.showTags
true
, the details screem shows the entity tags.showFilterBar
true
, the details screen shows the filter bar.showAddTag
true
, the details screen shows the Add tag option.layout
Reference cards that should be shown on the screen (like chart groups or entity lists) or use the automatically generated screen layout.
autoGenerate
true
, the screen content is automatically generated.cards
type
field: CHART_GROUP
, ENTITIES_LIST
, EVENTS
, LOGS
, MESSAGE
, METRIC_TABLE
, INJECTIONS
, BREAK_LINE
, HEALTH_CARD
, CARD_GROUP
.The detailsInjections
field defines injections for the entity details page. This information can be used to better evaluate user experience and also help with root-cause analysis.
Injections must be supported by the screen—the layout needs to include an injected cards placeholder.
detailsInjections:- type: CHART_GROUPentitySelectorTemplate: type(custom:host), toRelationship.sameAs($(entityConditions))key: injectedChartGroups- type: ENTITIES_LISTkey: injectedListwidth: HALF_SIZE- type: EVENTSkey: injectedEventswidth: FULL_SIZE
type
CHART_GROUP
, ENTITIES_LIST
, EVENTS
, LOGS
, MESSAGE
, HEALTH_CARD
, CARD_GROUP
, METRIC_TABLE
.key
entitySelectorTemplate
It can serve multiple purposes—selecting the entity where the chart will be displayed and filtering them based on certain rules or relating entities. It is used in conjunction with entityType
to further refine which entities are applicable for the card. For example, if entityType
is HOST
, you can use entitySelectorTemplate
to show the card only for hosts using a certain operating system.
$entityConditions
acts as a dynamic placeholder, adapting to the context in which the card appears. For example, when the card is displayed on a page dedicated to a specific host, $entityConditions
will automatically adjust to conditions applicable to that host.
For example, when the card with the following configuration is displayed on the host page.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf($(entityConditions))"
The $(entityConditions)
placeholder will be automatically replaced to point to the specific host entity.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf(type(HOST) AND entityId(HOST-<id>))"
width
HALF_SIZE
, FULL_SIZE
.The detailsFilter
field defines filters for the entity details screen. It enables you to customize the page to show only the data you want to see. It automatically displays metric dimension filters if there are any dimension splits on the screen (chart or metric table). To display only metric dimension filters, define it as empty (detailsFilters: {}
).
detailsFilters:relationships:- type(HOST_GROUP), toRelationship.isInstanceOf($(entityConditions))- type(AZURE_REGION), fromRelationship.isSiteOf($(entityConditions))entityFilters:- displayName: filtersfilters:- type: entityNamedisplayName: namefreeText: falsemodifier: containsdefaultSearch: truedistinct: falseentityTypes:- my:interface
relationships
You can enable filtering by configuring the relationship between screen entity type and related entity type. For example, filter process list by host name:
relationships:- type(HOST) AND toRelationship.isProcessOf($(entityConditions))
You can also configure the filtering on multiple levels. For example, filter the processes by host group name:
relationships:- type(HOST) AND toRelationship.isProcessOf($(entityConditions))- type(HOST) AND fromRelationship.isInstanceOf(type(HOST_GROUP))
entityFilters
The block that defines the groups of filters (these are displayed slightly grayed out in the filtering list).
filters
type
entityName
as a default attribute.displayName
freeText
true
, the user can freely type text; otherwise, they must select from a list of suggestions. Note: only default attributes such as entityName
are capable of offering list of suggestions.modifier
freeText
is true, this defines how the text should be matched against the attribute. When freeText
is false, this must be omitted. Note: All non-default attributes must match as equals
regardless of this option.defaultSearch
true
, if the user starts typing without selecting a filter first, this filter is selected by default. Only one filter within the filtering
block may have this enabled.distinct
true
, only one instance of this filter can be applied.entityTypes
The listSettings
section enables you to customize the list view of the unified analysis page. You can change the selection and order of columns, how the list is sorted, and the number of rows to display.
listSettings:staticContent:showGlobalFilter: trueheader:title: My hostsdescription: My hosts listicon: hostlayout:autoGenerate: falsecards:- type: CHART_GROUPkey: chart- type: ENTITIES_LISTkey: entitiesList- type: INJECTIONS
staticContent
requiredEnable or disable static elements like problems, properties, tags, global filter, and the Add tag option.
showProblems
true
, the details screen shows the problem card.showProperties
true
, the details screem shows the properties card.showTags
true
, the details screem shows the entity tags.showGlobalFilter
true
, the details screen shows the filter bar.showAddTag
true
, the details screen shows the Add tag option.header
breadcrumbs
hideDefaultBreadcrumb
true
, the default breadcrumb for the current page is hidden.layout
requiredReference cards that should be shown on the screen (like chart groups or entity lists) or use the automatically generated screen layout.
autoGenerate
true
, the screen content is automatically generated.cards
type
field: CHART_GROUP
, ENTITIES_LIST
, MESSAGE
, INJECTIONS
, BREAK_LINE
.The listInjections
field defines injections for entity details screen. Injections must be supported by the screen—the layout needs to include an injected cards placeholder.
listInjections:- type: CHART_GROUPkey: injectedChartGroups- type: ENTITIES_LISTkey: injectedListwidth: HALF_SIZE
type
CHART_GROUP
, ENTITIES_LIST
, MESSAGE
, METRIC_TABLE
.key
The listFilters
field defines filters on the list page.
listFilters:relationships:- type(HOST_GROUP), toRelationship.isInstanceOf($(entityConditions))- type(AZURE_REGION), fromRelationship.isSiteOf($(entityConditions))entityFilters:- displayName: filtersfilters:- type: entityNameentityTypes:- HOST_GROUP- AZURE_REGIONfreeText: falsedisplayName: namedistinct: true
relationships
You can enable filtering by configuring the relationship between screen entity type and related entity type. For example, filter process list by host name:
relationships:- type(HOST) AND toRelationship.isProcessOf($(entityConditions))
You can also configure the filtering on multiple levels. For example, filter the processes by host group name:
relationships:- type(HOST) AND toRelationship.isProcessOf($(entityConditions))- type(HOST) AND fromRelationship.isInstanceOf(type(HOST_GROUP))
entityFilters
The list of entity filters. For generic entities, the only filter types with suggestions are entityName
, tag
, healthState
, and ipAddress
/ dt.ip_addresses
. Any custom attributes must be set to freeText: true
with modifier: equals
. There are no suggestions supported, so you must type the exact value to filter.
filters
type
entityName
as a default attribute.displayName
freeText
true
, the user can freely type text; otherwise, they must select from a list of suggestions. Note: only default attributes such as entityName
are capable of offering list of suggestions.modifier
freeText
is true, this defines how the text should be matched against the attribute. When freeText
is false, this must be omitted. Note: All non-default attributes must match as equals
regardless of this option.defaultSearch
true
, if the user starts typing without selecting a filter first, this filter is selected by default. Only one filter within the filtering
block may have this enabled.distinct
true
, only one instance of this filter can be applied.entityTypes
The propertiesCard
field displays the entity properties that are shown on the card as key-value pairs. By default, all available attribute properties are displayed.
propertiesCard:properties:- type: RELATIONrelation:entitySelectorTemplate: NOT VALIDATED IN SCHEMAdisplayName: default- type: ATTRIBUTEattribute:key: attributedisplayName: Attribute
properties
requiredUse this configuration to specify the properties card.
type
RELATION
, ATTRIBUTE
.RELATION
Enables you to specify the relation to the specific entity.
entitySelectorTemplate
It can serve multiple purposes—selecting the entity where the chart will be displayed and filtering them based on certain rules or relating entities. It is used in conjunction with entityType
to further refine which entities are applicable for the card. For example, if entityType
is HOST
, you can use entitySelectorTemplate
to show the card only for hosts using a certain operating system.
$entityConditions
acts as a dynamic placeholder, adapting to the context in which the card appears. For example, when the card is displayed on a page dedicated to a specific host, $entityConditions
will automatically adjust to conditions applicable to that host.
For example, when the card with the following configuration is displayed on the host page.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf($(entityConditions))"
The $(entityConditions)
placeholder will be automatically replaced to point to the specific host entity.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf(type(HOST) AND entityId(HOST-<id>))"
displayName
fallbackMessage
ATTRIBUTE
Enables you to overwrite attribute display options.
key
displayName
The chart group cards enable you to visualize the specified metrics in dedicated charts.
metricSelector
expression specifies the metrics your chart is based on. For more information, see Metrics API - Metric selector. The examples below use simple metric selector expressions referring directly to the metric keys.chartsCards:- key: chartGroupconditions:- NOT VALIDATED IN SCHEMAnumberOfVisibleCharts: 2charts:- displayName: Chartconditions:- NOT VALIDATED IN SCHEMAvisualizationType: GRAPH_CHARTgraphChartConfig:visualization:themeColor: DEFAULTseriesType: LINEmetrics:- metricSelector: NOT VALIDATED IN SCHEMA- metricSelector: builtin:host.cpu.usage:avgvisualization:themeColor: DEFAULTseriesType: LINE- displayName: Chart2visualizationType: PIE_CHARTpieChartConfig:metric:metricSelector: NOT VALIDATED IN SCHEMAdefaultAggregation: AVGshowLegend: truethemeColor: ORANGE- displayName: Chart3visualizationType: SINGLE_VALUEsingleValueConfig:metric:metricSelector: NOT VALIDATED IN SCHEMAdisplayName: Single valuedefaultAggregation: COUNTshowSparkline: trueshowTrend: true
key
numberOfVisibleCharts
mode
NORMAL
mode enables you to interact with the charts (view different data points or zoom in/out). Charts with STATIC
mode are presented in a fixed, restricted manner.
charts
displayName
visualizationType
The visualizationType
defines the type for your chart: a graph chart GRAPH_CHART
, a pie chart PIE_CHART
, or a single value SINGLE_VALUE
. If you don't specify the visualization type, the graph chart is rendered by default.
GRAPH_CHART
visualization
COLUMN
, LINE
or AREA
). You can also enable showing the axis legend by setting the showLegend
flag to true
.metrics
thresholds
metricSelector
A metric selector expression for a dedicated metric line.
visualization
COLUMN
, LINE
or AREA
). You can also enable showing the axis legend by setting the showLegend
flag to true
.PIE_CHART
metric
defaultAggregation
SINGLE_VALUE
metric
displayName
defaultAggregation
showSparkline
true
, the sparkline is visible.showTrend
true
, the trend is visible.thresholds
foldTransformation
AUTO
, LAST_VALUE
, MAX
, MIN
, SUM
, MEDIAN
, VALUE
, PERCENTILE_10
, PERCENTILE_75
, PERCENTILE_90
.ConditionName|param1key=param1value|param2key=param2value
demo
isSaaS
featureFlag
entityAttribute
relatedEntity
entitySelectorTemplate
extensionConfigured
uiPermission
CONFIG_WRITE
).isActive
serviceType
METype.SERVICE
details screens.typeExists
METype
service is present in the environment.platform
When parameters are provided with a specific value, they are formatted as key=value
. The system will verify the exact match of this key-value
pair. If only the key is provided without any accompanying value, the system will simply check if that key is present using the .exists()
method.
The extension is configured to operate on the current host.
Metric key
The specified number of days within which the system checks the most recent updates.
The entities list card displays other entities that are related to the focused entity. The YAML file below lists all Synology disks mapped to an instance of DiskStation Manager on which the details screen focuses.
entitySelectorTemplate
expression specifies the entities to list on the card. For more information, see Environment API v2 - Entity selector.type(syn:disk),fromRelationships.runsOn($(entityConditions))
lists the entities of type syn:disk
that have a relationship of from
direction and runsOn
type to the syn:diskmanager
represented via the $(entityConditions)
placeholder that stands for a focused entity.entitiesListCards:- key: disksdisplayName: Synology diskspageSize: 10displayCharts: falseentitySelectorTemplate: "type(syn:disk),fromRelationships.runsOn($(entityConditions))"displayIcons: trueenableDetailsExpandability: truenumberOfVisibleCharts: 2columns:- type: ATTRIBUTEattribute:key: some_attributedisplayName: Some attribute- type: RELATIONrelation:entitySelectorTemplate: type("syn:partition"),fromRelationship.isChildOf($(entityConditions))displayName: PartitionsdisplayAmount: falsefallbackMessage: "no partition"filtering:relationships:- type(syn:partition), fromRelationship.isChildOf($(entityConditions))entityFilters:- displayName: filtersfilters:- type: entityNamedisplayName: namefreeText: truemodifier: containsdefaultSearch: truedistinct: falseentityTypes:- my:interface- type: entityNamedisplayName: Partition namefreeText: truemodifier: containsdefaultSearch: falsedistinct: falseentityTypes:- syn:partition
key
displayName
pageSize
displayCharts
true
, charts with aggregated data appears above table.entitySelectorTemplate
It can serve multiple purposes—selecting the entity where the chart will be displayed and filtering them based on certain rules or relating entities. It is used in conjunction with entityType
to further refine which entities are applicable for the card. For example, if entityType
is HOST
, you can use entitySelectorTemplate
to show the card only for hosts using a certain operating system.
$entityConditions
acts as a dynamic placeholder, adapting to the context in which the card appears. For example, when the card is displayed on a page dedicated to a specific host, $entityConditions
will automatically adjust to conditions applicable to that host.
For example, when the card with the following configuration is displayed on the host page.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf($(entityConditions))"
The $(entityConditions)
placeholder will be automatically replaced to point to the specific host entity.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf(type(HOST) AND entityId(HOST-<id>))"
displayIcons
true
, the name
column displays the icon of the entity.enableDetailsExpandability
true
, rows can be expanded with charts related to that row dimension values.numberOfVisibleCharts
displayProblemImpactWidget
true
, a widget indicating that some entities are not healthy will be displayed above the list. Make sure there is visible filtering with the health state filter.columns
filtering
columns
Additional columns that are displayed between Name and chart columns. There are 2 types available: ATTRIBUTE and RELATION.
RELATION
Enables you to specify the relation to the entity (1:1 relation) or list of entities (1:n relation).
entitySelectorTemplate
It can serve multiple purposes—selecting the entity where the chart will be displayed and filtering them based on certain rules or relating entities. It is used in conjunction with entityType
to further refine which entities are applicable for the card. For example, if entityType
is HOST
, you can use entitySelectorTemplate
to show the card only for hosts using a certain operating system.
$entityConditions
acts as a dynamic placeholder, adapting to the context in which the card appears. For example, when the card is displayed on a page dedicated to a specific host, $entityConditions
will automatically adjust to conditions applicable to that host.
For example, when the card with the following configuration is displayed on the host page.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf($(entityConditions))"
The $(entityConditions)
placeholder will be automatically replaced to point to the specific host entity.
"entitySelectorTemplate": "type(NETWORK_INTERFACE) AND fromRelationships.isNetworkInterfaceOf(type(HOST) AND entityId(HOST-<id>))"
displayName
displayAmount
false
, entities are displayed as a list (up to 20 entities). If true
, the number of related entities is displayed as a link to the list screen. The linked list is prefiltered only if it has configured listFilters
with appropriate relationship and entityName
filter (freeText: true
and modifier: contains
).fallbackMessage
ATTRIBUTE
Enables you to specify custom attribute column.
key
displayName
The events cards display the events related to specified entities.
eventsCards:- key: eventsdisplayName: EventsentitySelectorTemplates:- "$(entityConditions)",- "type(CONTAINER_GROUP_INSTANCE),fromRelationships.isInstanceOf($(entityConditions))",- "type(PROCESS_GROUP_INSTANCE),fromRelationships.isPgiOfCgi(type(CONTAINER_GROUP_INSTANCE),fromRelationships.isInstanceOf($(entityConditions)))"showFiltering: trueshowPagination: truepageSize: 10
key
displayName
Events
.entitySelectorTemplates
showFiltering
true
, the filtering bar displays above events chart.showPagination
true
, the Show more action is available under events list.pageSize
description
eventSelectorTemplate
displayChart
The logsCards
field specifies the behavior of the logs card and has the same functionality as Log viewer. It consists of a bar chart representing different log occurrences during selected timeframe and detailed table where each log is an entry with additional properties like: timestamp, status, content.
logsCards:- key: logsdisplayName: LogsenablePaging: truefilterQuery: event.type!="k8s" AND ($(logEntityAttributeKey) inEntitySelector "$(entityConditions)" OR dt.entity.container_group_instance inEntitySelector "type(CONTAINER_GROUP_INSTANCE),fromRelationships.isInstanceOf($(entityConditions))" OR dt.entity.process_group_instance inEntitySelector "type(PROCESS_GROUP_INSTANCE),fromRelationships.isPgiOfCgi(type(CONTAINER_GROUP_INSTANCE),fromRelationships.isInstanceOf($(entityConditions)))")showFiltering: truepageSize: 10
key
displayName
enablePaging
true
, enables paging of the log results in the table.filterQuery
expression {attribute} inEntitySelector "{entitySelector}"
to display logs of related entities. For example, dt.entity.host inEntitySelector "type(PROCESS_GROUP_INSTANCE) AND fromRelationship.isProcessOf($(entityConditions))"
.showFiltering
pageSize
description
displayChart
The messageCards
field specifies the behavior of the message card, like visualization options, theme, or text.
messageCards:- key: message-cardtype: CARDcard:text: internal texttheme: MAINdisplayName: Message Card- key: message-card2type: MESSAGEmessage:text: internal texttheme: INFO
key
type
CARD
, MESSAGE
.CARD
Displays the message in the card format with title, description and buttons.
text
theme
WARNING
, MAIN
, CTA
.displayName
MESSAGE
Displays the message in the card format with description only.
text
theme
INFO
, WARNING
, ERROR
.The problemsCard
field specifies the behavior of the problems card.
problemsCard:entitySelectorTemplates:- NOT VALIDATED IN SCHEMA- NOT VALIDATED IN SCHEMA1- NOT VALIDATED IN SCHEMA2
entitySelectorTemplates
The actions
field defines actions that are available from the menu.
actions:- actionScope: GLOBAL_DETAILSactions:- actionExpression: actionName|key1=value1- actionScope: CHART_GROUPkey: chartactionLocation: CHARTactions:- actionExpression: actionName|key1=value1- actionScope: ENTITIES_LISTkey: entitiesListactionLocation: TABLE_ENTRYactions:- actionExpression: actionName|key1=value1
actionScope
GLOBAL_DETAILS
, GLOBAL_LIST
, PROPERTIES
, PROBLEMS
, CHART_GROUP
, ENTITIES_LIST
, EVENTS
, LOGS
, METRIC_TABLE
.key
key
if you want the action to be available only in one specific card. To add this actions in every card of this type, leave it empty.actionLocation
HEADER
, CHART
, TABLE_ENTRY
.ActionName|param1key=param1value|param2key=param2value
configuration
relatedEntityConfiguration
entitySelectorTemplate
, name
settings
relatedEntityScreen
entitySelectorTemplate
, name
smartscape
Settings scope class
Settings scope identifier
Settings schema ID
Action display name
Hub capability URL part
Extension ID used as URL part
Entire intent JSON
core.editConfig
UAScreenFeatureFlags.ENABLE_CONFIG_BUTTONS
core.shareScreenUrl
core.share.feedback
core.dataExplorer
core.alerting
CONFIG_WRITE
permissions, Chart element typecore.pinToDashboard
UAScreenFeatureFlags.ENABLE_PIN_TO_DASHBOARD
core.problems
core.screenType
UAScreenFeatureFlags.ENABLE_CONFIG_BUTTONS
core.singleCard
UAScreenFeatureFlags.ENABLE_SINGLE_CARD_BUTTONS
core.logs.createMetric
core.opt.out
core.useLocalConfig
UAScreenFeatureFlags.ENABLE_USE_LOCAL_CONFIG_BUTTON
core.logs.filtered
core.slos.create
CONFIG_WRITE
permissions, Slo List element typeScreen type expression to be rendered in the sidebar
Problem ID
Metric table is a graphical representation of the metrics data related to the same dimension set.
metricTableCards:- key: metricTablepageSize: 5displayCharts: trueenableDetailsExpandability: truenumberOfVisibleCharts: 2filtering: {}charts:- displayName: Chartconditions:- NOT VALIDATED IN SCHEMAvisualizationType: GRAPH_CHARTgraphChartConfig:visualization:themeColor: DEFAULTseriesType: LINEmetrics:- metricSelector: NOT VALIDATED IN SCHEMA- metricSelector: builtin:process.cpu:splitBy("process.pid","process.parent_pid","process.executable.name","process.executable.path","process.command_line","process.owner", "dt.entity.process_group_instance")visualization:themeColor: DEFAULTseriesType: LINEconditions:- NOT VALIDATED IN SCHEMA
key
pageSize
displayCharts
true
, charts with aggregated data appears above the table.enableDetailsExpandability
true
, rows can be expanded with charts related to that row dimension values.numberOfVisibleCharts
charts
conditions
filtering
detailsFilters: {}
).Health cards provide a visual representation of specific metrics within the Dynatrace UI. Each card can be tailored to display up to six distinct tiles, each representing a unique metric or data point.
Health tile can be used as navigation button to specify element on the page that will give more details about that metric.
healthCards:- key: health_cardtiles:- displayName: UptimemetricSelector: builtin:host.uptimedisplayMetricValue: 'true'foldTransformation: LAST_VALUE- displayName: CPUmetricSelector: builtin:host.cpu.usage:avgdisplayMetricValue: 'true'foldTransformation: LAST_VALUEanchor:cardName: Host performancechartName: CPU usage- displayName: Available memorymetricSelector: builtin:host.mem.avail.pctdisplayMetricValue: 'true'foldTransformation: LAST_VALUEanchor:cardName: Host performancechartName: Memory usage- displayName: NetworkmetricSelector: (builtin:host.net.nic.trafficIn:merge("dt.entity.network_interface"):avg)+(builtin:host.net.nic.trafficOut:merge("dt.entity.network_interface"):avg)additionalMetricSelectors:collection:- builtin:host.net.nic.trafficIn:merge("dt.entity.network_interface")- builtin:host.net.nic.trafficOut:merge("dt.entity.network_interface")displayMetricValue: 'true'foldTransformation: LAST_VALUEanchor:cardName: Host performancechartName: Traffic
key
tiles
tiles
displayName
metricSelector
additionalMetricSelectors
displayMetricValue
foldTransformation
AUTO
, LAST_VALUE
, MAX
, MIN
, SUM
, MEDIAN
, VALUE
, PERCENTILE_10
, PERCENTILE_75
, PERCENTILE_90
.anchor