Semantic Services Monitoring¶
What’s in this document?
Overview¶
The Ontotext Semantic Services use Grafana to monitor the performance and health of the deployed services.
The data is gathered via Telegraf and stored in InfluxDB. This way, the Semantic Services performance and health are monitored in real time.
To find out more about how to use Grafana with InfluxDB, please visit Using InfluxDB in Grafana.
You can also monitor the Semantic Services performance from their web-based administration interface, the Workbench.
Dashboards¶
The following dashboards are available for download:
Docker¶
Services health notifications and alerts
- Sends alerts via e-mail, Slack, or other messaging services used by your team.

Metrics - Semantic Objects
- Monitors essential data about the Semantic Objects, such as CPU usage, memory usage, JVM thread count, etc.

GraphDB Metrics
- Monitors the overall performance of GraphDB.

Query execution details
- Monitors data about each query execution details, such as time spent for parsing, executing, validation, etc.

To monitor the overall Docker environment, you can download a dashboard that fits your needs from the official Grafana website.
Kubernetes¶
Services health notifications and alerts
- Sends alerts via e-mail, Slack, or other messaging services used by your team.

GraphDB Metrics
- Monitors the overall performance of GraphDB.

Query execution details
- Monitors data about each query execution details, such as time spent for parsing, executing, validation, etc.

To monitor the overall Kubernetes environment, you can download a dashboard that fits your needs from the official Grafana website.
Each of them provides valuable real-time information about different components of the Ontotext Semantic Services.
Quick Start¶
If you are deploying the Ontotext Semantic Services via our sample Helm charts, it has Telegraf, InfluxDB, and Grafana pre-configured to work together. The dashboards shown above are preloaded as well.
Docker Configuration¶
If you are manually configuring the monitoring services, you will need to import them in Grafana. See how to import them here.
Follow the below instructions on how to configure the monitoring. Here is an example Docker
Compose monitoring.yaml
for deploying the monitoring services.
Telegraf has its own telegraf.conf
configuration file. It needs to be mounted when starting the Docker container, so make sure it exists
under config/
folder next to the Docker Compose file or update the volume mounting to point to
the correct telegraf.conf
location.
To deploy the example Docker Compose file, use:
docker-compose -f monitoring.yaml up -d
After deploying the Docker Compose, you can access Grafana on http://localhost:9991
. It will
have automatically provisioned the bundled dashboards and data sources. The default administrative
user is admin
with password admin
. You will be prompted to update the default password upon
your first login.
Note
For installing and deploying the full Ontotext Semantic Services, including security and monitoring, see the Installation section for available deployment scenarios.
To stop and remove the monitoring services, use:
docker-compose -f monitoring.yaml down
To remove all persisted data as well, use:
docker-compose -f monitoring.yaml down --volumes
Custom Provisioning¶
If you wish to override the default provisioning, you can uncomment the following Grafana volume mount and supply your own dashboards and data sources:
- ./grafana/provisioning/:/etc/grafana/provisioning/
Example directory structure and configurations for Grafana provisioning:
grafana/provisioning/
consists of three folders:
dashboards
- to provision already available dashboards.For Grafana to load your dashboards, you need to place the following
dashboard.yaml
:
apiVersion: 1
providers:
- name: 'influxdb'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /etc/grafana/provisioning/dashboards
datasources
- to provision your data source (InfluxDB)The
datasource.yaml
configuration should look like this:
apiVersion: 1
datasources:
- name: metrics
type: influxdb
access: proxy
orgId: 1
url: http://influxdb:8086
database: metrics
isDefault: false
version: 1
editable: true
jsonData:
httpMode: POST
notifiers
- to provision your notification settings.The
notifiers.yaml
should look like this:
notifiers:
- name: Slack
type: slack
uid: slackNotifier
org_id: 1
org_name: Ontotext.
is_default: true
send_reminder: true
frequency: 1h
disable_resolve_message: false
# See `Supported Settings` section for settings supporter for each
# alert notification type.
settings:
recipient: ""
uploadImage: true
url: webHook
- name: Gmail
type: email
uid: emailNotifier
org_id: 1
org_name: Ontotext.
is_default: false
send_reminder: true
frequency: 1h
disable_resolve_message: false
# See `Supported Settings` section for settings supporter for each
# alert notification type.
settings:
addresses: "test@example.com"
uploadImage: true
delete_notifiers:
- name: Slack
uid: slackNotifier
org_id: 1
org_name: Ontotext.
- name: Gmail
uid: emailNotifier.
org_id: 1
org_name: Ontotext.
Configuring Notifications & Alerts¶
Grafana can send notifications based on set alerts. It offers multiple integrations with e-mail and push notification services.
See more on how to configure them here.
To set an alert, follow the steps here.