InTouch Hub · Blue Isle Software

New Relic

Run NRQL queries and manage alerts via the New Relic NerdGraph GraphQL API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

alertalertingdeveloper-devopslogmonitoringnewnrqlsearch

New Relic

Run NRQL queries and manage alerts via the New Relic NerdGraph GraphQL API.

Operations

Operation Description
run_nrql Execute a NRQL query against an account and return results
search_entities Search monitored entities (apps, hosts, services) by name or domain type
list_alert_policies List all alert policies for an account
create_nrql_condition Create an alert policy and a NRQL static condition on it

API Key Setup

  1. Log into New Relic and go to Profile > API keys (top-right avatar menu).
  2. Create a key of type User — this is the key accepted by NerdGraph.
  3. Copy the key value; pass it as apiKey in every tool invocation.

Note: Ingest (license) keys do NOT work with NerdGraph.

Parameters

Parameter Required for Description
apiKey all New Relic User API key
operation all One of the four operations above
accountId run_nrql, list_alert_policies, create_nrql_condition Numeric NR account ID
region all us (default) or eu
nrql run_nrql NRQL query string
entityQuery search_entities Entity search query string
policyName create_nrql_condition Name for the new alert policy
conditionName create_nrql_condition Name for the new NRQL alert condition
conditionNrql create_nrql_condition NRQL query the condition evaluates
threshold create_nrql_condition Numeric threshold value (default: 10)
thresholdDuration create_nrql_condition Duration in seconds (multiple of 60, default: 300)

Examples

Run a NRQL query

[
  {
    "name": "count-transactions",
    "type": "tool",
    "toolName": "new-relic",
    "input": {
      "apiKey": "{{credential.nrApiKey}}",
      "operation": "run_nrql",
      "accountId": "1234567",
      "nrql": "SELECT count(*) FROM Transaction SINCE 1 HOUR AGO"
    }
  }
]

Search for APM application entities

[
  {
    "name": "find-app",
    "type": "tool",
    "toolName": "new-relic",
    "input": {
      "apiKey": "{{credential.nrApiKey}}",
      "operation": "search_entities",
      "entityQuery": "name LIKE 'checkout' AND domainType IN ('APM-APPLICATION')"
    }
  }
]

List alert policies

[
  {
    "name": "list-policies",
    "type": "tool",
    "toolName": "new-relic",
    "input": {
      "apiKey": "{{credential.nrApiKey}}",
      "operation": "list_alert_policies",
      "accountId": "1234567"
    }
  }
]

Create an alert policy and NRQL condition

[
  {
    "name": "create-error-alert",
    "type": "tool",
    "toolName": "new-relic",
    "input": {
      "apiKey": "{{credential.nrApiKey}}",
      "operation": "create_nrql_condition",
      "accountId": "1234567",
      "policyName": "High Error Rate Policy",
      "conditionName": "Transaction errors exceed threshold",
      "conditionNrql": "SELECT count(*) FROM TransactionError SINCE 5 MINUTES AGO",
      "threshold": "50",
      "thresholdDuration": "300"
    }
  }
]

Output

All operations publish:

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes — DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes — One of: run_nrql, search_entities, list_alert_policies, create_nrql_condition
accountId string no — New Relic account ID (numeric). Required for run_nrql, list_alert_policies, and create_nrql_condition.
region string no us Data center region: 'us' (default, https://api.newrelic.com/graphql) or 'eu' (https://api.eu.newrelic.com/graphql).
nrql string no — NRQL query string to execute. Required for run_nrql. Example: SELECT count(*) FROM Transaction SINCE 1 HOUR AGO
entityQuery string no — Entity search query string for search_entities. Example: name LIKE 'my-app' AND domainType IN ('APM-APPLICATION')
policyName string no — Name for the new alert policy. Required for create_nrql_condition (a policy with this name is looked up or a new one created).
conditionName string no — Name for the new NRQL alert condition. Required for create_nrql_condition.
conditionNrql string no — NRQL query for the alert condition. Required for create_nrql_condition. Example: SELECT count(*) FROM TransactionError
threshold string no 10 Numeric threshold value for the alert condition critical term. Required for create_nrql_condition.
thresholdDuration string no 300 Duration in seconds over which the threshold must be met to trigger the alert (must be a multiple of 60, e.g. 300). Required for create_nrql_condition.