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: <synthetic monitoring api url for your grafana cloud stack> stackId: <instance ID of your hosted grafana> logs: grafanaName: <name of an existing Loki datasource pointing to the Grafana Cloud Loki instance> hostedId: <Grafana Cloud Loki instance ID> metrics: grafanaName: <name of an existing Prometheus datasource pointing to the Grafana Cloud Prometheus instance> hostedId: <Grafana Cloud Prometheus instance ID> secureJsonData: publisherToken: <metric publisher token from grafana.com>
apiHostexpects Synthetic Monitoring API URL, see more details here
stackIdexpects an integer and can be found using
gcom /instances/<orgSlug>, or by visiting
https://grafana.com/orgs/<orgSlug>/stacksand clicking the
detailsbutton on stack you are connecting to. The id will be in the URL.
metricssection are instructing the plugin which datasources it needs to use.
grafanaNameneeds to exactly match the names specified in your datasource provisioning
hostedIdexpects an integer and is the same value as the
basicAuthUserin your datasource provisioning. The value can also be found from the
detailspage of loki or prometheus at
publisherTokenneeds to be a grafana.com api key with a
MetricsPublisherrole. This is what the probes use to publish metrics to your cloud stack.
Note: you can add a provisioning block per org to provision the plugin for multiple orgs. You can provide different values for each org block and connect to a different cloud stack per org.
- 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 Cloud 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: <datasource name> type: loki access: proxy url: https://logs-prod-us-central1.grafana.net basicAuth: true basicAuthUser: <Grafana Cloud Loki instance ID> jsonData: maxLines: 1000 secureJsonData: basicAuthPassword: <viewer token from grafana.com> version: 1
name: <datasource name> 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: <viewer token from grafana.com> version: 1
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?
Note that it could take up to 1 minute to see the plugin show up in your Grafana.
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.
- Fix a race condition that prevented values from showing up when navigating to the edit check form
- Update routing to use React router
- Fix a bug in the usage prediction calculation
- Accessibility fixes
- Include traceroute checks in the Terraform config export
- Gracefully handle inability to connect to API
- Added the ability to bulk edit probes for checks
- Update the README with additional configuration details
- Add a
terraform importcommand to the terraform config download. This allows users to generate intial TF state.
- Replace worldmap panel plugin with geomap panel in all the dashboards
- Use the updated timeseries panel in the summary dashboard
- Rename the DNS dashboard to align with the other dashboards
- Add the ability to export checks and probes as terraform config from the plugin config page
- Add a button to generate a new API key in the plugin config page
- Add traceroute check type
- Add data points per minute to usage calculator
- Mark deprecated probes as such in check editor. Prevent adding deprecated probes to checks.
- Fix a dashboard config error
- add a homepage (625beb9)
- go back to circle bild (7d159fa)
[1.2.30] - 2021-08-27
- New start to changelog with updated build process
Introducing Grafana Enterprise Traces, joining metrics and logs in the Grafana Enterprise Stack observability solution
Blog post 7 min
Grafana 8.2.3 released with medium severity security fix: CVE-2021-41174 Grafana XSS
Blog post 4 min
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 …
Blog post 5 min