Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Infrastructure Dashboard - Cloud Container Health

infrastructure
shared-dashboards

#1

Dashboard of the Day - Container Health

Motivation

Monitoring the overall health of your application can be difficult when it comes to dynamically changing environments. This dashboard will clear up any doubt when it comes to the health of your containers.


Screenshot


Dashboard Details

Required Products: Infrastructure
Level of Effort: Low
This dashboard will work on the standard New Relic data models and does not require any custom attributes or events.

Settings
Use the gear button to edit your dashboard and configure the following settings:

  • Dashboard Filter: Enabled
  • Enabled Event Types: ProcessSample
  • Enabled Attributes: containerImageName

Chart Details

In this section, we’ll go into the details on the purpose of each of the charts. We’ll also show you the query (NRQL) that you can cut/paste into your Insights query bar.

CPU by Image Name

Facetable Bar Chart

SELECT average(cpuPercent) AS 'Average CPU percentage' FROM ProcessSample facet containerImageName SINCE today

Displays the average CPU Percent faceted by containerImageName

Add a Chart Facet for extra functionality!

Chart Facets expands the ability to quickly scope down into data by being able to click on an attribute and have the entire dashboard facet by that data point. Add this to the chart by doing the following:

  1. Run the NRQL query and save the chart to your dashboard.
  2. Open the menu in the newly created chart by clicking the ellipses in the top right corner and select “Edit Chart”.
  3. Click the blue button labeled “Link facets to a dashboard”, select the “current dashboard” option, and click Save.

CPU by Image Name

Line Chart

SELECT average(cpuPercent) FROM ProcessSample TIMESERIES FACET `containerImageName` LIMIT 100 SINCE today

Displays the average CPU Percent of containerImageName over time

Virtual Memory by Container Name

Line Chart

SELECT average(memoryVirtualSizeBytes) FROM ProcessSample TIMESERIES FACET containerName LIMIT 100 SINCE today

Displays the average Virtual Memory over time faceted by `containerName

Containers per Image

Line Chart

SELECT uniqueCount(containerId) FROM ProcessSample FACET containerImageName SINCE today TIMESERIES

Displays the unique number of containers over time faceted by containerImageName

CPU by Container

Stacked Area Chart

SELECT average(cpuPercent) FROM ProcessSample TIMESERIES facet containerImageName LIMIT 100

Displays the average CPU Percent faceted by containerImageName

Virtual Memory by Contained Process

Line Chart

SELECT average(memoryVirtualSizeBytes) FROM ProcessSample TIMESERIES FACET `entityAndPid` LIMIT 100 SINCE today

Displays the average virtual memory over time faceted by contained process (entityAndPid)

Thread Count by Kubernetes Container Name

Line Chart

```SELECT average(threadCount) FROM ProcessSample TIMESERIES facet `containerLabel_io.kubernetes.container.name````

Displays the average thread count over time faceted by Kubernetes Container Name

CPU Usage by EC2 Instance ID

Chart Type

SELECT average(cpuPercent) FROM ProcessSample TIMESERIES facet ec2InstanceId since today

Displays the Average CPU Percent over time faceted by EC2 Instance ID

Residual Memory by Image

Line Chart

SELECT average(memoryResidentSizeBytes) FROM ProcessSample TIMESERIES FACET `containerImageName` LIMIT 100 SINCE today

Displays the average residual memory over time faceted by the Container Image Name


Extra Credit - Share your dashboard with the community!

Want to be a super “NeRD” (New Relic Developer)?
Use the API Explorer (or our Postman collection) to load the dashboard definition below into Insights or share the definition of your dashboard and increase your international NeRD cred! (And you’ll earn a cool badge for your community profile!)
Here’s some quick tips on how to do this.

Dashboard Definition

{
  "dashboard": {
    "title": "Infrastructure Dashboard - Cloud Container Health",
    "description": null,
    "icon": "bar-chart",
    "visibility": "all",
    "editable": "editable_by_all",
    "metadata": {
      "version": 1
    },
    "widgets": [
      {
        "visualization": "markdown",
        "layout": {
          "width": 3,
          "height": 1,
          "row": 1,
          "column": 1
        },
        "data": [
          {
            "source": "# Motivation\n---\nMonitoring the overall health of your application can be difficult when it comes to dynamically changing environments. This dashboard will clear up any doubt when it comes to the health of your containers.\n\nhttps://discuss.newrelic.com/t/infrastructure-dashboard-cloud-container-health/61053"
          }
        ],
        "presentation": {
          "title": "",
          "notes": null
        }
      },
      {
        "visualization": "facet_bar_chart",
        "layout": {
          "width": 1,
          "height": 1,
          "row": 2,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT average(cpuPercent) AS 'Average CPU percentage' FROM ProcessSample facet containerImageName SINCE today"
          }
        ],
        "presentation": {
          "title": "CPU by Image Name",
          "notes": "Displays the average CPU Percent faceted by containerImageName",
          "drilldown_dashboard_id": null
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 1,
          "height": 1,
          "row": 2,
          "column": 2
        },
        "data": [
          {
            "nrql": "SELECT average(cpuPercent) FROM ProcessSample TIMESERIES FACET `containerImageName`  LIMIT 100 SINCE today"
          }
        ],
        "presentation": {
          "title": "CPU by ImageName",
          "notes": "Displays the average CPU Percent of containerImageName over time"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 1,
          "height": 1,
          "row": 2,
          "column": 3
        },
        "data": [
          {
            "nrql": "SELECT average(memoryVirtualSizeBytes)  FROM ProcessSample TIMESERIES FACET containerName LIMIT 100 SINCE today"
          }
        ],
        "presentation": {
          "title": "Virtual Memory by Container Name",
          "notes": "Displays the average Virtual Memory over time faceted by `containerName"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 1,
          "height": 1,
          "row": 3,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT uniqueCount(containerId) FROM ProcessSample FACET containerImageName SINCE today TIMESERIES"
          }
        ],
        "presentation": {
          "title": "Containers per Image",
          "notes": "Displays the unique number of containers over time faceted by containerImageName"
        }
      },
      {
        "visualization": "faceted_area_chart",
        "layout": {
          "width": 2,
          "height": 1,
          "row": 3,
          "column": 2
        },
        "data": [
          {
            "nrql": "SELECT average(cpuPercent) FROM ProcessSample  TIMESERIES facet containerImageName LIMIT 100"
          }
        ],
        "presentation": {
          "title": "CPU by Container",
          "notes": "Displays the average CPU Percent faceted by containerImageName"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 3,
          "height": 1,
          "row": 4,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT average(memoryVirtualSizeBytes) FROM ProcessSample TIMESERIES FACET `entityAndPid`  LIMIT 100 SINCE today"
          }
        ],
        "presentation": {
          "title": "Virtual Memory by Contained Processes",
          "notes": "Displays the average virtual memory over time faceted by contained process (entityAndPid)"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 3,
          "height": 1,
          "row": 5,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT average(threadCount) FROM ProcessSample  TIMESERIES facet `containerLabel_io.kubernetes.container.name`"
          }
        ],
        "presentation": {
          "title": "Thread Count by Kubernetes Container Name",
          "notes": "Displays the average thread count over time faceted by Kubernetes Container Name"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 3,
          "height": 1,
          "row": 6,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT average(cpuPercent) FROM ProcessSample  TIMESERIES facet ec2InstanceId since today"
          }
        ],
        "presentation": {
          "title": "CPU usage by EC2 Instance ID",
          "notes": "Displays the Average CPU Percent over time faceted by EC2 Instance ID"
        }
      },
      {
        "visualization": "faceted_line_chart",
        "layout": {
          "width": 3,
          "height": 1,
          "row": 7,
          "column": 1
        },
        "data": [
          {
            "nrql": "SELECT average(memoryResidentSizeBytes) FROM ProcessSample TIMESERIES FACET `containerImageName`  LIMIT 100 SINCE today"
          }
        ],
        "presentation": {
          "title": "Resident Memory by Image",
          "notes": "Displays the average residual memory over time faceted by the Container Image Name"
        }
      }
    ],
    "filter": {
      "event_types": [
        "ProcessSample"
      ],
      "attributes": []
    }
  }
}