Monday, October 19, 2026

#1186 - New OIC Dashboard filter

Introduction

The default dashboards in Log Analytics come with the following filters- 

Note the filter options - 

The log group compartment refers to the compartment for your OCI Log Analytics OIC log group. This is the activity stream logs sent from your OIC service instance to Log Analytics. These logs are parsed to retrieve the resource ids for active instances in the timeframe selected. Note, the resource ids are the more cryptic instance ocids, ergo, not the most use friendly way of selecting an OIC instance.  

Selecting the available OIC instances in this way has 2 major disadvantages - 

  • The OCID is not user friendly; customers want to see values such as OIC-Test, OIC-Dev, OIC-Prod etc.
  • Only showing OIC instances that have logs in the activity stream for the time interval selected gives us an incomplete view of my OIC real estate.

The New Filter

Here are the OIC instances in my selected compartment -

This is the list I want to see in my dashboard filter.

I begin by checking out the request used to retrieve these instances - 

https://integration.us-phoenix-1.ocp.oraclecloud.com/20190131/integrationInstances?compartmentId=yourCompartmentId

This will be the basis for my new filter - 

Here is the underlying JSON -

{
    "id": "yourSavedSearchOCID",
    "compartmentId": "yourCompartment",
    "widgetVM": "visualizations/chartWidget",
    "widgetTemplate": "visualizations/chartWidgetTemplate.html",
    "isOobSavedSearch": false,
    "description": "OIC integration instances",
    "displayName": "OIC integration instances filter",
    "providerId": "management-dashboard",
    "providerName": "Management Dashboard",
    "providerVersion": "3.0.0",
    "metadataVersion": "2.0",
    "screenImage": "...",
    "nls": {},
    "freeformTags": {},
    "definedTags": {
        "Oracle-Tags": {
            "CreatedBy": "niall.commiskey@oracle.com",
            "CreatedOn": "2026-10-15T15:33:45.480Z"
        }
    },
    "featuresConfig": {
        "crossService": {
            "shared": true
        },
        "dependencies": [],
        "serviceTypes": [
            "management-dashboard"
        ]
    },
    "dataConfig": [
        {
            "name": "ds",
            "type": "genericDataSource",
            "parameters": {
                "url": {
                    "origin": "https://integration.$(params.regionName).ocp.oraclecloud.com",
                    "path": "20190131/integrationInstances",
                    "parameters": [
                        {
                            "name": "compartmentId",
                            "value": "$(params.compartmentId)"
                        }
                    ]
                },
                "defaultTransform": {
                    "selectedFields": [
                        {
                            "field": "id",
                            "alias": "value"
                        },
                        {
                            "field": "displayName",
                            "alias": "label"
                        }
                    ]
                }
            }
        }
    ],
    "uiConfig": {
        "vizFilterType": "genericFilter",
        "filterName": "oic-instances",
        "genericFilterInfo": {
            "selectionMode": "multiple"
        },
        "defaultDataSource": "ds"
    },
    "type": "FILTER_SHOW_IN_DASHBOARD",
    "drilldownConfig": [],
    "parametersConfig": [
        {
            "name": "compartmentId",
            "displayName": "$(bundle.globalSavedSearch.COMPARTMENT)",
            "required": true,
            "defaultFilterIds": [
                "OOBSS-management-dashboard-compartment-filter"
            ],
            "valueFormat": {
                "type": "string"
            },
            "editUi": {
                "inputType": "compartmentSelect"
            }
        },
        {
            "name": "regionName",
            "displayName": "$(bundle.globalSavedSearch.REGION)",
            "required": false,
            "defaultFilterIds": [
                "OOBSS-management-dashboard-region-filter"
            ],
            "valueFormat": {
                "type": "string"
            },
            "editUi": {
                "inputType": "savedSearch",
                "filterTile": {
                    "filterId": "OOBSS-management-dashboard-region-filter",
                    "parametersMap": {
                        "selectionMode": "single"
                    }
                }
            }
        }
    ],
    "createdBy": "niall.commiskey@oracle.com",
    "timeCreated": "2026-10-15T15:33:45.582Z",
    "updatedBy": "niall.commiskey@oracle.com",
    "timeUpdated": "2026-10-15T15:43:46.903Z"
}}


Net, net - the filter is based on the request from the Developer Services --> Integration page.
This retrieves the ocid and display name - 

{
        "id": "yourInstanceOCID",
        "displayName": "OIC3Test",
        "compartmentId": "yourComartmentId",
        "integrationInstanceType": "STANDARDX",
        "timeCreated": "2026-03-05T06:57:59.670Z",
        "timeUpdated": "2026-10-08T07:54:11.322Z",
        "lifecycleState": "ACTIVE",

We need the display for the the dropdown selection list; we also require the OCID (resourceId) for the widget queries - e.g. MessagesReceivedCount[5m]{resourceId = $(params.selectedInstance)}.grouping().grouping().sum()


Note the following checkboxes -
  • Required
  • Allow multiple values
Allow multiple values is probably not appropriate for the specific dashboard I will be creating; I just wanted to highlight this option, because there will be times when you want such.

This new filter is not dependent on the activity stream logs; all it needs is a compartment id.

Using the filter in a Dashboard

I do not see any data, when I open the dashboard. This is because we need to select an OIC instance.

I select the Dev instance - 

The dashboard widgets are populated -

Summa Summarum

This new filter is simple to implement and is independent of the OIC activity stream logs. In my case, I don't need a fleet view for such metrics. I also don't need the ability to drill down to the integration level. 

A Big thanks to my esteemed OCI colleagues, Jean and Raul for their help here! 




  

No comments: