Git Product home page Git Product logo

catchpoint-integration's Introduction

Overview

This document outlines steps required to integrate SignalFx (a Splunk company) and Catchpoint systems with regards to Synthetic Monitoring and Real User Metrics.

In both cases we are going to use the simple-nodejs-weather-app as a sample application monitored and tested by SignalFx and Catchpoint. Before you continue, make sure to deploy this application on a machine reachable from the Internet so that Catchpoint system can test it.

Synthetic Monitoring

The goal is to have Synthetic Monitoring configured on Catchpoint's side to push synthetic tests related metrics to SignalFx Infrastructure Monitoring platform.

There are three key components of this setup in Catchpoint system:

  • Product - represents your website, web application or server monitored by Catchpoint.
  • Test - represents a set of instructions required to collect performance and availability metrics of your Product.
  • Test Data Webhook - a mechanism used to push metric data to SignalFx.

The following procedure describes how to create all those components starting with Test Data Webhook.

Setup

  1. Login into the Catchpoint Portal and go to SettingsAPI.

  2. In the Test Data Webhook section click Add URL.

    1. Specify Name (you will use it later to select this webhook).

    2. Enter SignalFx Data Ingest address in the URL field: https://ingest.{{realm}}.signalfx.com/v2/datapoint, for example https://ingest.signalfx.com/v2/datapoint (us0) or https://ingest.us1.signalfx.com/v2/datapoint (us1).

      Note your Data Ingest server name may be different - you may check the actual value on your SignalFx profile page.

    3. Select Template for Format

    4. Add a new template

    5. Enter the Template Name e.g. SignalFx and set the Format to JSON.

    6. Paste the contents of template.json to the webhook template body.

      This template can be modified to use other metrics and/or details. The various possible macros can be found at https://support.catchpoint.com/hc/en-us/articles/360008476571

    7. Enter an email address into On Failure Alert and set the Notification Trigger value. If Catchpoint is not able to send data to the configured endpoint several times, you will get a notification to this address.

    8. Finally add the following headers:

      Field Value
      Content-Type application/json
      X-SF-TOKEN <YOUR SIGNALFX ACCESS TOKEN>

      Refer to the SignalFx documentation to check how to obtain the Access Token.

    9. Hit Save.

  3. In Catchpoint Portal go to the Tests section and click CreateProduct.

    1. Specify your product Name.
    2. Enable Test Data Webhook and select the webhook created in step #2 earlier.
    3. Select one or more Nodes in the Default Targeting and Scheduling section.
    4. Hit Save.
  4. Now click CreateTransaction.

    1. Specify test Name.

    2. Paste the following sample test commands in the Script field:

      // change the following address to point to your instance of the tested app
      open("http://www.example.com/");
      var city = ${SequentialListByLocation('New York', 'London', 'Malaga')};
      type("//*[@name=\"city\" or @class=\"ghost-input\"]", "${var(city)}");
      setStepName("Type city name");
      
      clickAndWait("//*[@class=\"ghost-button\"]");
      setStepName("Get temperature.");
    3. Tick Enable Test Data Webhook checkbox.

    4. Hit Save.

  5. Login to SignalFx and go to Dashboards section. Select the green plus icon in the upper right corner and click ImportDashboard Group. Select dashboard.json to import a sample dashboard showing several metrics related to Catchpoint's synthetic test results.

Real User Metrics

The goal is to use the sample weather app instrumented with signalfx-tracing library to push Real User Metrics to Catchpoint system including SignalFx Microservices APM (µAPM) trace ID in the RUM data.

Having SignalFx µAPM traceID in Catchpoint, we will be able to navigate to SignalFx µAPM application and analyze complete data flow both on the backend and frontend sides.

Refer to the sample weather app repository to find out how to instrument code and how to include µAPM trace ID in the RUM data.

There are two key components of this setup in Catchpoint system:

  • Insight - represents a property associated with your metrics you may later use to breakdown the RUM data.
  • App - represents your application you want to gather Real User Metrics for.

Setup

  1. To create Trace ID insight, login into the Catchpoint Portal and go to SettingsInsight and enter the following values in the first empty row:

    Name Token Status HTTP Section Format
    Trace ID traceid Active Headers, other options disabled traceid, JSON option disabled
  2. Hit Save.

  3. Now go to SettingsApps and click CreateSite.

    1. Enter a Name of your site.

    2. Enter a Domain Name that points to the sample weather app deployment.

    3. In the Insight section select Trace ID in the Tracepoint field.

      Note: the JavScript code shown in the Tracking Code section is the code that was copied to the sample weather app view file.

    4. Hit Save.

  4. Finally in the Catchpoint app you can navigate to the Analysis → Real User → Explorer → Page section. This is where you can inspect RUM metrics from your app breaking them down by the SignalFx µAPM trace ID.

    1. In the top-left corner use the dropdown control to select your app.

    2. In the Breakdown1st by select Trace ID.

    3. Adjust Time Frame if needed.

    4. Hit Apply button on the bottom of the left column.

      Once your app reports some metrics you will be able to see some charts here. Right above the chart is the SignalFx µAPM trace ID (e.g. 315a9f77d0101f4a).

      You may copy the trace ID and paste it in the SignalFx µAPM UI to inspect the trace data:

      • go to µAPMTroubleshootingView Trace ID
      • or in case of the µAPM PG (Previous Generaton): go to µAPM PGView Trace IDTrace ID;

catchpoint-integration's People

Contributors

bgola-signalfx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.