<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Pro-Tip: Making your extensions ready for the Infrastructure &amp;amp; Operations app in Dynatrace tips</title>
    <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/300409#M1915</link>
    <description>&lt;P&gt;&lt;a href="https://community.dynatrace.com/t5/user/viewprofilepage/user-id/65540"&gt;@cooper&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Great information!&lt;/P&gt;</description>
    <pubDate>Sun, 07 Jun 2026 17:21:42 GMT</pubDate>
    <dc:creator>AntonioSousa</dc:creator>
    <dc:date>2026-06-07T17:21:42Z</dc:date>
    <item>
      <title>Pro-Tip: Making your extensions ready for the Infrastructure &amp; Operations app</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/299698#M1906</link>
      <description>&lt;P&gt;In case you have not heard, the &lt;EM&gt;Infastructure &amp;amp; Operations&lt;/EM&gt; app can display data ingested from extensions, see this &lt;A href="https://docs.dynatrace.com/docs/shortlink/infrastructure-and-operations#view-data-from-imported-technologies" target="_blank" rel="noopener"&gt;Documentation page&lt;/A&gt; for more details.&lt;/P&gt;
&lt;P&gt;If you have your own extensions with screen definitions that can be viewed in the &lt;EM&gt;Techonolgies &amp;amp; Processes Classic&lt;/EM&gt; app, then its a simple process to make your extension data show up in the I&amp;amp;O app.&lt;/P&gt;
&lt;P&gt;It only requires a few additions to your extension.yaml to get going.&lt;/P&gt;
&lt;P&gt;We’ll take look at how we can do this, with a real-world example from the &lt;A href="https://www.dynatrace.com/hub/detail/remote-unix-monitoring-20/" target="_blank" rel="noopener"&gt;&lt;EM&gt;Remote Unix Monitoring&lt;/EM&gt; extension&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="prerequisites"&gt;Prerequisites&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Ensure a minimum minDynatraceversion of 1.318.0. This is the earliest version that supports the keywords section.&lt;/LI&gt;
&lt;LI&gt;Add the keywords section in the extension.yaml, which is required to work with the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app.&lt;/LI&gt;
&lt;LI&gt;Update screen defnitions to include DQL.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="the-keywords-section"&gt;The keywords section&lt;/H2&gt;
&lt;P&gt;The keywords section tells the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app how to organize and display data from your extension. Here is the example keywords section for the &lt;EM&gt;Remote Unix Monitoring&lt;/EM&gt; extension:&lt;/P&gt;
&lt;DIV class=""&gt;
&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;keywords&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; title:remote unix monitoring 2.0&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; category:compute&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; tech:unix&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; vendor:other&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; icon:extensions&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt; entity:None&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;Let’s break down what these fields mean, and what kind of values we can enter:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;title: The name of the extension (capitalization does not matter here).&lt;/LI&gt;
&lt;LI&gt;category: Choose from one of these example categories that will be used to group extensions in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app:
&lt;UL&gt;
&lt;LI&gt;Analytics&lt;/LI&gt;
&lt;LI&gt;Application&lt;/LI&gt;
&lt;LI&gt;Compute&lt;/LI&gt;
&lt;LI&gt;Security&lt;/LI&gt;
&lt;LI&gt;Storage&lt;/LI&gt;
&lt;LI&gt;Cloud&lt;/LI&gt;
&lt;LI&gt;Database&lt;/LI&gt;
&lt;LI&gt;Network&lt;/LI&gt;
&lt;LI&gt;Virtualization&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;tech:this can be a generalization of the technology being monitored, For example, load-balancer, firewall, etc.&lt;/LI&gt;
&lt;LI&gt;vendor: If there is an associated vendor the technology you are monitoring, then you can enter it here.&lt;/LI&gt;
&lt;LI&gt;icon: An icon can be chosen from the Developer Documentation &lt;A href="https://developer.dynatrace.com/design/icons/functional-icons/" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;entity: None is fine for this use-case.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="updating-the-screens-to-support-viewing-in-the-infrastructure-operations-app"&gt;Updating the screens to support viewing in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app&lt;/H2&gt;
&lt;P&gt;Along with adding keywords in our extension.yaml, we’ll also have to update our screens section in the extension.yaml to use DQL. Here we can see an (abbreviated) view of the screens section of the extension.yaml for the &lt;EM&gt;Remote Unix Monitoring&lt;/EM&gt; extension.&lt;/P&gt;
&lt;P&gt;For example have a system card in the layout for our remote_unix:host screen definition. If you have created your own screens, you will have something that resembles this structure. We don’t have to change anything here to make this work in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app, but we will make some changes in the system card definition.&lt;/P&gt;
&lt;DIV class=""&gt;
&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;screens&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;  ...&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;entityType&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; remote_unix:host&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;  ...&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;layout&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;autoGenerate&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;false&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;cards&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;          &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;type&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; CARD_GROUP&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; System&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;cards&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;              &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;type&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; CHART_GROUP&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;key&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; system&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;  ...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;Let’s take a look at the definition for our system CHART_GROUP, and see what changes can be made to make this card show in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app:&lt;/P&gt;
&lt;DIV class=""&gt;
&lt;PRE&gt;&lt;SPAN&gt;    &lt;SPAN class=""&gt;chartsCards&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;key&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; system&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;mode&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; NORMAL&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;target&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; BOTH&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;numberOfVisibleCharts&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; Availability&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;chartsInRow&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;charts&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;          &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; Availability&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;visualizationType&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; GRAPH_CHART&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;graphChartConfig&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;              &lt;SPAN class=""&gt;yAxes&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;key&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; left-percent&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;position&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; LEFT&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;min&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"0"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;max&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"100"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;visible&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;true&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;              &lt;SPAN class=""&gt;metrics&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;metricSelector&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; remote_unix.availability:splitBy("dt.entity.remote_unix:host")&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;                  dqlQuery&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;|-&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    timeseries availability=avg(remote_unix.availability),by:{`dt.entity.remote_unix:host`},filter:{`dt.entity.remote_unix:host`==$(entityId)}&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;visualization&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; Availability&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;          &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; Load averages&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;visualizationType&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; GRAPH_CHART&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;            &lt;SPAN class=""&gt;graphChartConfig&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;              &lt;SPAN class=""&gt;metrics&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;metricSelector&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; remote_unix.load_avg_1_min:splitBy("dt.entity.remote_unix:host")&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;                  dqlQuery&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;|-&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    timeseries load_avg_1_min=avg(remote_unix.load_avg_1_min),by:{`dt.entity.remote_unix:host`},filter:{`dt.entity.remote_unix:host`==$(entityId)}&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;visualization&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; 1 minute&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;metricSelector&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; remote_unix.load_avg_5_min:splitBy("dt.entity.remote_unix:host")&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;                  dqlQuery&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;|-&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    timeseries load_avg_5_min=avg(remote_unix.load_avg_5_min),by:{`dt.entity.remote_unix:host`},filter:{`dt.entity.remote_unix:host`==$(entityId)}&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;visualization&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; 5 minutes&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                &lt;SPAN class=""&gt;-&lt;/SPAN&gt; &lt;SPAN class=""&gt;metricSelector&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; remote_unix.load_avg_15_min:splitBy("dt.entity.remote_unix:host")&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;                  dqlQuery&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;|-&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    timeseries load_avg_15_min=avg(remote_unix.load_avg_15_min),by:{`dt.entity.remote_unix:host`},filter:{`dt.entity.remote_unix:host`==$(entityId)}&lt;/SPAN&gt;
&lt;SPAN&gt;                  &lt;SPAN class=""&gt;visualization&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;                    &lt;SPAN class=""&gt;displayName&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt; 15 minutes&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;In order to display this card in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app, we had to add a few lines:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Firstly, in the chartCards section, we add target: BOTH, which means that we want to display this card in &lt;EM&gt;Latest Dynatrace&lt;/EM&gt; (&lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app) as well as &lt;EM&gt;Classic Dynatrace&lt;/EM&gt; (&lt;EM&gt;Technologies &amp;amp; Processes Classic&lt;/EM&gt; app).
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: you could specify the value of target to be PLATFORM instead of BOTH to only display this in &lt;EM&gt;Latest Dynatrace&lt;/EM&gt; only.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;The second change, is that we also have to accompany each metricSelector with a dqlQuery, which is what will be used to display the metric in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is just one example, and you would have to repeat this process across cards and entity types to see the same screens as in the &lt;EM&gt;Technologies &amp;amp; Processes Classic &lt;/EM&gt;app.&lt;/P&gt;
&lt;P&gt;That said, with these changes, you can build and activate the new version of your extension in your environment, and see it in the &lt;EM&gt;Infrastructure &amp;amp; Operations&lt;/EM&gt; app!&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="I&amp;amp;0_tech_page.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/32331i159DC647A9E817C5/image-size/large?v=v2&amp;amp;px=999" role="button" title="I&amp;amp;0_tech_page.png" alt="I&amp;amp;0_tech_page.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;You can navigate to the extension like so, and click on the entity to see the&amp;nbsp;system card we defined for use in the app:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="I&amp;amp;O_remote_host.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/32332i90A7DEFB0970EB54/image-size/large?v=v2&amp;amp;px=999" role="button" title="I&amp;amp;O_remote_host.png" alt="I&amp;amp;O_remote_host.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you can still see the original card that was defined previously in the &lt;EM&gt;Technologies &amp;amp; Processes Classic&lt;/EM&gt; app:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="T&amp;amp;P_remote_host.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/32333iB783BD70A99A5ADD/image-size/large?v=v2&amp;amp;px=999" role="button" title="T&amp;amp;P_remote_host.png" alt="T&amp;amp;P_remote_host.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 09:16:03 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/299698#M1906</guid>
      <dc:creator>cooper</dc:creator>
      <dc:date>2026-05-29T09:16:03Z</dc:date>
    </item>
    <item>
      <title>Re: Pro-Tip: Making your extensions ready for the Infrastructure &amp; Operations app</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/299722#M1907</link>
      <description>&lt;P&gt;Thank you!&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://community.dynatrace.com/html/@9BD876A77FEF3D5EF4BC972CF8A97CB1/images/emoticons/take_my_money.png" alt=":take_my_money:" title=":take_my_money:" /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 20 May 2026 07:09:59 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/299722#M1907</guid>
      <dc:creator>AntonPineiro</dc:creator>
      <dc:date>2026-05-20T07:09:59Z</dc:date>
    </item>
    <item>
      <title>Re: Pro-Tip: Making your extensions ready for the Infrastructure &amp; Operations app</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/300403#M1914</link>
      <description>&lt;P&gt;This is really great&amp;nbsp;&lt;a href="https://community.dynatrace.com/t5/user/viewprofilepage/user-id/65540"&gt;@cooper&lt;/a&gt;!&lt;BR /&gt;&lt;BR /&gt;Question, how much can we customize the visualization options in the extension.yaml for the I&amp;amp;O app?&amp;nbsp; Like, can we define the same amount of options as defining a visualization's settings in a latest Dynatrace dashboard JSON?&amp;nbsp; Or are we limited to just what's shown in your examples?&lt;BR /&gt;&lt;BR /&gt;I'd like to be able to customize the Data mapping names, custom threshold colors, units &amp;amp; formats, and other such visualization options to make the charts display how we want.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&amp;nbsp; I did some digging on my own and found that no, you can't really customize the visualization charts for screens in the extension.yaml like you can for dashboards in the documents JSON.&amp;nbsp; There are a few things you can do though. Like, you can change the color of series and the chart type with something like this in the c&lt;STRONG&gt;hartsCards&lt;/STRONG&gt; &amp;gt; c&lt;STRONG&gt;harts&lt;/STRONG&gt; &amp;gt; &lt;STRONG&gt;graphChartConfig&lt;/STRONG&gt; &amp;gt; &lt;STRONG&gt;metrics&lt;/STRONG&gt; section:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;visualization:
                    seriesType: COLUMN
                    displayName: SUCCEEDED
                    themeColor: GREEN&lt;/LI-CODE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I would definitely love to see more options for panel configuration in the yaml for sure.&amp;nbsp; Being able to customize the panels in I&amp;amp;O would be awesome, especially if we can put &lt;STRONG&gt;annotations&lt;/STRONG&gt; on the charts!&lt;/DIV&gt;</description>
      <pubDate>Sun, 07 Jun 2026 17:46:11 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/300403#M1914</guid>
      <dc:creator>36Krazyfists</dc:creator>
      <dc:date>2026-06-07T17:46:11Z</dc:date>
    </item>
    <item>
      <title>Re: Pro-Tip: Making your extensions ready for the Infrastructure &amp; Operations app</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/300409#M1915</link>
      <description>&lt;P&gt;&lt;a href="https://community.dynatrace.com/t5/user/viewprofilepage/user-id/65540"&gt;@cooper&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Great information!&lt;/P&gt;</description>
      <pubDate>Sun, 07 Jun 2026 17:21:42 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Making-your-extensions-ready-for-the-Infrastructure-amp/m-p/300409#M1915</guid>
      <dc:creator>AntonioSousa</dc:creator>
      <dc:date>2026-06-07T17:21:42Z</dc:date>
    </item>
  </channel>
</rss>

