Dynatrace tips
Tips and workarounds from Dynatrace users for Dynatrace users.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Pro-Tip: Making your extensions ready for the Infrastructure & Operations app

cooper
Dynatrace Enthusiast
Dynatrace Enthusiast

In case you have not heard, the Infastructure & Operations app can display data ingested from extensions, see this Documentation page for more details.

If you have your own extensions with screen definitions that can be viewed in the Techonolgies & Processes Classic app, then its a simple process to make your extension data show up in the I&O app.

It only requires a few additions to your extension.yaml to get going.

We’ll take look at how we can do this, with a real-world example from the Remote Unix Monitoring extension.

 

Prerequisites

  • Ensure a minimum minDynatraceversion of 1.318.0. This is the earliest version that supports the keywords section.
  • Add the keywords section in the extension.yaml, which is required to work with the Infrastructure & Operations app.
  • Update screen defnitions to include DQL.

 

The keywords section

The keywords section tells the Infrastructure & Operations app how to organize and display data from your extension. Here is the example keywords section for the Remote Unix Monitoring extension:

keywords:
  - title:remote unix monitoring 2.0
  - category:compute
  - tech:unix
  - vendor:other
  - icon:extensions
  - entity:None

Let’s break down what these fields mean, and what kind of values we can enter:

  • title: The name of the extension (capitalization does not matter here).
  • category: Choose from one of these example categories that will be used to group extensions in the Infrastructure & Operations app:
    • Analytics
    • Application
    • Compute
    • Security
    • Storage
    • Cloud
    • Database
    • Network
    • Virtualization
  • tech:this can be a generalization of the technology being monitored, For example, load-balancer, firewall, etc.
  • vendor: If there is an associated vendor the technology you are monitoring, then you can enter it here.
  • icon: An icon can be chosen from the Developer Documentation here.
  • entity: None is fine for this use-case.

 

Updating the screens to support viewing in the Infrastructure & Operations app

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 Remote Unix Monitoring extension.

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 Infrastructure & Operations app, but we will make some changes in the system card definition.

screens:
  ...
  - entityType: remote_unix:host
  ...
      layout:
        autoGenerate: false
        cards:
          - type: CARD_GROUP
            displayName: System
            cards:
              - type: CHART_GROUP
                key: system
  ...

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 Infrastructure & Operations app:

    chartsCards:
      - key: system
        mode: NORMAL
        target: BOTH
        numberOfVisibleCharts: 2
        displayName: Availability
        chartsInRow: 2
        charts:
          - displayName: Availability
            visualizationType: GRAPH_CHART
            graphChartConfig:
              yAxes:
                - key: left-percent
                  position: LEFT
                  min: "0"
                  max: "100"
                  visible: true
              metrics:
                - metricSelector: remote_unix.availability:splitBy("dt.entity.remote_unix:host")
                  dqlQuery: |-
                    timeseries availability=avg(remote_unix.availability),by:{`dt.entity.remote_unix:host`},filter:{`dt.entity.remote_unix:host`==$(entityId)}
                  visualization:
                    displayName: Availability
          - displayName: Load averages
            visualizationType: GRAPH_CHART
            graphChartConfig:
              metrics:
                - metricSelector: remote_unix.load_avg_1_min:splitBy("dt.entity.remote_unix:host")
                  dqlQuery: |-
                    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)}
                  visualization:
                    displayName: 1 minute
                - metricSelector: remote_unix.load_avg_5_min:splitBy("dt.entity.remote_unix:host")
                  dqlQuery: |-
                    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)}
                  visualization:
                    displayName: 5 minutes
                - metricSelector: remote_unix.load_avg_15_min:splitBy("dt.entity.remote_unix:host")
                  dqlQuery: |-
                    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)}
                  visualization:
                    displayName: 15 minutes

In order to display this card in the Infrastructure & Operations app, we had to add a few lines:

  • Firstly, in the chartCards section, we add target: BOTH, which means that we want to display this card in Latest Dynatrace (Infrastructure & Operations app) as well as Classic Dynatrace (Technologies & Processes Classic app).
    • NOTE: you could specify the value of target to be PLATFORM instead of BOTH to only display this in Latest Dynatrace only.
  • 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 Infrastructure & Operations app.

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 Technologies & Processes Classic app.

That said, with these changes, you can build and activate the new version of your extension in your environment, and see it in the Infrastructure & Operations app!

I&0_tech_page.png

You can navigate to the extension like so, and click on the entity to see the system card we defined for use in the app:

I&O_remote_host.png

 

And you can still see the original card that was defined previously in the Technologies & Processes Classic app:

T&P_remote_host.png

 

1 REPLY 1

AntonPineiro
DynaMight Guru
DynaMight Guru

Thank you! :take_my_money:

❤️ Emacs ❤️ Vim ❤️ Bash ❤️ Perl

Featured Posts