Skip to content

Instantly share code, notes, and snippets.

@khpeet
khpeet / nr_user_key_usage.js
Created February 6, 2024 22:43
Fetches partial keys from graphql, combines that data with usage data via NrComputeUsage (across many accounts), and inserts into NRDB as queryable events.
//Configure as synthetic SCRIPTED_API monitor
var got = require('got');
//** REQUIRED INPUTS **//
var API_KEY = $secure.KEY_USAGE; // GraphQL User Key
var INGEST_KEY = $secure.INGEST_KEY; //Ingest key
var ACCOUNT_ID = 1 //account to insert events into
//** REQUIRED INPUTS **//
@khpeet
khpeet / baseline_optimization.json
Last active December 7, 2023 17:13
Dashboard to optimize baseline alert condition thresholds and examine model behavior
{
"name": "Baseline Alert Optimization",
"description": null,
"permissions": "PUBLIC_READ_WRITE",
"pages": [
{
"name": "Baseline Alert Optimization",
"description": null,
"widgets": [
{
@khpeet
khpeet / snow-xmlstats-synthetic.js
Created July 11, 2023 13:47
ServiceNow XMLStats Synthetic Polling
/* <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */
/* Imports */
/* <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */
const assert = require('assert'),
{ promisify } = require('util'),
{ Parser, processors } = require('xml2js'),
got = require('got'),
{ Cookie, CookieJar } = require('tough-cookie')
@khpeet
khpeet / user-entities-to-nrql.js
Created March 14, 2023 18:59
Fetches user entities + tags, and inserts the data back into NRDB as queryable events
var got = require('got');
/* -------------------CONFIGURATION-------------------------------------- */
var API_KEY = '<user_key>'; //add as a secure cred - Used to fetch data via GraphQL - preferably a master account key
var INGEST_KEY = '<ingest_key>'; //add as a secure cred - Used to insert data into NRDB
var ACCOUNT_ID = 1 //account to post events to
var EVENT_TYPE = 'UserEntity'; //eventType (table) that data is stored in
/* -------------------CONFIGURATION-------------------------------------- */
@khpeet
khpeet / users-to-nrql.js
Last active February 16, 2024 11:44
Fetches user data from GraphQL, formats it, sends to NRDB as queryable events.
var got = require('got');
/* -------------------CONFIGURATION-------------------------------------- */
var API_KEY = '<user_key>'; //add as a secure cred - Used to fetch data via GraphQL - preferably a master account key
var INGEST_KEY = '<ingest_key>'; //add as a secure cred - Used to insert data into NRDB
var ACCOUNT_ID = 1 //account to post events to
var EVENT_TYPE = 'NrUsers'; //eventType (table) that data is stored in
/* -------------------CONFIGURATION-------------------------------------- */
var GRAPH_API = 'https://api.newrelic.com/graphql';
@khpeet
khpeet / apm-logs.js
Created May 2, 2022 19:38
Fetch all APM apps across many accounts that are sending logs (source = logs.APM)
const fetch = require('node-fetch');
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
//Script that looks across many accounts and determines if APM Logs are currently being sent. Generates CSV report.
//npm i node-fetch csv-writer
//configure below
//run --> node apm-logs.js
var GRAPH_API = 'https://api.newrelic.com/graphql';
var PATH = '/path/to/apm_entities_sending_logs.csv' //path/file to write to
@khpeet
khpeet / ingest-granular-generic.js
Last active February 1, 2024 19:10
Report New Relic Ingest by eventType/specific attribute or tag via Synthetic script
var got = require('got');
/* -------------------CONFIGURATION-------------------------------------- */
var API_KEY = '<api_key>'; //add as secure cred - Used to fetch data via GraphQL -- master account preferably
var INGEST_KEY = '<ingest_key>'; // add as a secure cred - Used to insert data into NRDB as metrics
var FACET = '<facet>'; //Attribute to facet ingest by
var excludedEventTypes = [ //eventTypes to ignore
"AuditLog",
"ActivityEvent",
@khpeet
khpeet / akami-to-insights.js
Created August 25, 2017 14:28
Send Akami headers via NR Synthetic script to Insights
/*
--------- SCRIPT SUMMARY ---------
Author(s) : Keagan Peet
Date : 8/24/17
Version : 1.0.0
Notes : Akami response headers to Insights for a single page.
*/
var assert = require('assert');
var request = require('request');
@khpeet
khpeet / nr_script_create.py
Last active August 18, 2017 22:17
to upload a single NR synthetic scripted browser type.
##!usr/bin/env python
########################################################################################
# Author: Keagan Peet
# Purpose: To programatically create a scripted monitor within New Relic Synthetics.
# Note: Current Base64 encoding below only works with Python 2.7
########################################################################################
import json