Plugins 〉Synthetic Monitoring
Synthetic monitoring application
Synthetic Monitoring is a blackbox monitoring solution provided as part of Grafana Cloud. Synthetic Monitoring provides users with insights into how their applications and services are behaving from an external point of view. Users can define checks to continually test remote targets from 1 or more probe locations around the world to assess the availability, performance and correctness of the services. As each check runs, metrics and logs are collected and published to the user's Grafana Cloud service. Metrics are published to Grafana Cloud Prometheus and logs are published to Grafana Cloud Loki.
Synthetic monitoring is the successor to the original worldping application. The refreshed Synthetic Monitoring product focuses on reducing complexity and taking advantage of Grafana Cloud capabilities.
Users can define HTTP/HTTPS, DNS, TCP and ICMP Ping checks to monitor their remote targets. Internally, the Synthetic Monitoring solution uses the Prometheus Blackbox exporter for executing the checks and collecting metrics and logs. When creating a check, users are able to customize the settings and validation rules supported by the Blackbox exporter.
For each check, users can select 1 or more 'public' probe locations distributed throughout the world to run tests from. Additionally, users can run their own 'private' probe locations by downloading and deploying the Synthetic Monitoring Agent.
Synthetic Monitoring requires a Grafana Cloud account, and is installed by default in Grafana Cloud stacks. A local Grafana instance can be configured to connect to Synthetic Monitoring via a provisioning file:
- type: grafana-synthetic-monitoring-app name: grafana-synthetic-monitoring-app disabled: false jsonData: apiHost: https://synthetic-monitoring-api.grafana.net stackId: <instanceId of your hosted grafana> logs: grafanaName: <Name of a Loki datasource pointed to a Grafana Cloud Loki instance> hostedId: <Grafana Cloud Loki instance ID> metrics: grafanaName: <Name of a Prometheus datasource pointed to a Grafana Cloud Prometheus instance> hostedId: <Grafana Cloud Prometheus instance ID> secureJsonData: publisherToken: <A metric publisher token from grafana.com>
- A datasource pointed at a Prometheus instance hosted in Grafana Cloud
- A datasource pointed at a Loki instance hosted in Grafana Cloud
Note: The Prometheus and Loki instances must be part of the same stack
The required datasources can be added via provisioning. The information needed can be copied from Prometheus and Loki datasources found in the datasources tab of a Cloud hosted Grafana instance:
- name: grafanacloud-<instanceSlug>-logs type: loki access: proxy url: https://logs-prod-us-central1.grafana.net basicAuth: true basicAuthUser: <Grafana Cloud Loki instance ID> basicAuthPassword: <grafana.com api key> jsonData: maxLines: 1000
- name: grafanacloud-<instanceSlug>-prom type: prometheus access: proxy url: https://prometheus-us-central1.grafana.net/api/prom basicAuth: true basicAuthUser: <Grafana Cloud Prometheus instance ID> jsonData: timeInterval: 1s secureJsonData: basicAuthPassword: <grafana.com api key>
To start the using app:
- Navigate to Synthetic Monitoring via the sidebar
- Click the Get Started button. This will initialize the app.
During the Initialization process, the Synthetic Monitoring backend will:
- Validate the Publisher API key provided in the provisioning file.
- Ensure the account has active Grafana Cloud Prometheus and Grafana Cloud Loki services
- The dashboards included with the App will then be imported.
- Finally, the Synthentic Monitoring Backend will be notified that the service is ready.
Users can then create checks to monitor their remote targets. Metrics and logs will flow into the selected Cloud stack.
Installing Synthetic Monitoring on Grafana Cloud:
Installing plugins on a Grafana Cloud instance is a one-click install; same with updates. Cool, right?
For more information, visit the docs on plugin installation.
Installing on a local Grafana:
For local instances, plugins are installed and updated via a simple CLI command. Plugins are not updated automatically, however you will be notified when updates are available right within your Grafana.
1. Install the Application
Use the grafana-cli tool to install Synthetic Monitoring from the commandline:
grafana-cli plugins install
The plugin will be installed into your grafana plugins directory; the default is /var/lib/grafana/plugins. More information on the cli tool.
Alternatively, you can manually download the .zip file for your architecture below and unpack it into your grafana plugins directory.
Alternatively, you can manually download the .zip file and unpack it into your grafana plugins directory.
2. Enable it
Next, log into your Grafana instance. Navigate to the Plugins section, found in your Grafana main menu.
Click the Apps tabs in the Plugins section and select the newly installed app.
To enable the app, click the Config tab. Follow the instructions provided with the application and click Enable. The app and any new UI pages are now accessible from within the main menu, as designed by the app creator.
If dashboards have been included with the application, they will attempt to be automatically installed. To view the dashboards, re-import or delete individual dashboards, click the Dashboards tab within the app page.
- add validation for label names and values, truncate long labels in the card view, and handle label deletion (#241) (15b0050)
- Updated checks page (2385caa)
- Add validation and messaging to enforce PEM certs for checks with TLS (73fecca)
- Add alerts (af5b835)
- add field for basic metrics (9113ffb)
- renavigate to checks page after deleting check (550a14a)
- add alert creation to check editor (3fdd8e1)
- add a check usage calculator (1c38252)
- handle http regex validation value deletion bug (dd01f12)
- header validations in http checks persisting incorrectly (3db912c)
- update queries for metrics used in the UI (34bfa7d)
- update TCP queries to use old and new metric names (120696f)
- update queries that use the renamed metrics (798c183)
- send a no-cache header when fetching dashboards (53d6f8a)
- allow floats in probe lat/long (d58f872)
- allow hostnames to start with a number (275070f)
- specify a step size for slider input (ec2fe5c)
- stuck loading spinner on check creation (d9a77ba)
- invert noFollowRedirects in the UI (c6d302e)
- make default values consistent for all check types (56866bb)
- fix http follow redirect setting being unresponsive (14ca222)
- reject http targets without a valid TLD (3339e2f)
- Build tooling updates, no code changes
- give feedback when probe creation or updating fails
Update to automated changelog generation
- Streamline validation and SSL option fields for HTTP checks
- make check search case insensitive (0d86f26)
- handle editing check with no probes (#66) (e56f0e2
- add missing closing to parenthesis to query (c23b1ac), closes #59
- show error if check update/save fails (#68) (ec745d8)
- query params broken out into their own inputs (566762b)
- split target query params off into their own inputs (f6972d8)
- Initial Release (preview)
Meet the Grafana Labs team: Software engineer Vicky Lee, who builds Enterprise plugins for Grafana
Blog post 2 min
The observability market is heating up, but is it more than just hype? Industry watchers weigh in
Blog post 4 min
ObservabilityCON Day 2 recap: The latest Grafana Cloud tools for Prometheus to improve alerting, debugging, and scaling. Plus why continuous monitoring matters now
Blog post 5 min
[KubeCon + CloudNativeCon EU recap] Getting some Thanos into Cortex while scaling Prometheus
Blog post 17 min
Introducing the new Open Distro for Elasticsearch plugin for Grafana, also available in Amazon Managed Service for Grafana
Blog post 3 min
Want to visualize software development insights with Grafana? With our new Jira Enterprise plugin, you can!
Blog post 5 min