Platform Monitor out-of-the-box configurations
Introduction to OOTB configuration
Out of the box (OOTB) is configuration of Platform Monitor, which is available after installation of WorkFusion platform (on-premise-flat).
Directory structure of OOTB files
- conf
- apm
master.ymlmongodb-apm.ymlrpa.yml
- app
app.ymlbot-manager.ymlcontrol-tower.ymlnginx.ymlnlp-uima.ymlservice-wfbi.ymlworkspace.yml
- db
db.ymlmongodb-ocr.ymlmongodb-rpa.ymlmysql.ymlnexus.ymlpostgres.ymlriak.ymlsolr.ymlvault.yml
- ocr
ocr.ymlrest.ymlworker.ymllicense.yml
- common
agent.ymlauth.yml
- system
linux.yml
notifications.yml
- apm
APM server configuration
master.yml
The configuration file describes general configuration of master Platform Monitor.
The file consists of four main parts.
- The first part contains server port where your Platform Monitor is deployed.
server.port: 10101
The second part contains a link to datasource (MongoDB) where Platform Monitor reads metrics.
metrics.history.source: MongoDbThe third part contains information about datasource where Platform Monitor saves metrics.
reporter: mongo: enabled: true source: MongoDbThe fourth part contains checks needed to delete older information from slave Platform Monitors.
checks: - id: agent.cleanup type: custom schedule: 20 evaluate: - id: agent.alive - id: agent.check type: custom schedule: 20 evaluate: - { id: agent.validate, parameters: { ns: app }, metric_name: app } - { id: agent.validate, parameters: { ns: db }, metric_name: db } - { id: agent.validate, parameters: { ns: ocr }, metric_name: ocr } - { id: agent.validate, parameters: { ns: ml }, metric_name: ml }
mongodb-apm.yml
The configuration file describes configuration of mongo datasource and check for it.
The file consists of three main parts:
The first part contains enviroment variables needed to create a connection to MongoDB.
Values of variables are not real.
environment: mongodb_apm_hostname: localhost mongodb_apm_database: wfagent mongodb_apm_port: 13017 mongodb_apm_user: wfagent mongodb_apm_password: password mongodb_apm_read_only_user: wfagent mongodb_apm_read_only_password: passwordThe second part contains a command for restarting MongoDB.
commands: - id: restart_mongo_apm type: command proxy: true expression: "%install_dir%/apps/mongodb/mongod.init restart"The third part contains checks needed to get current status of database and mongo server.
checks: - id: mongodb.db.apm type: mongo expression: "{ dbStats: 1 }" source: mongodb_apm_datasource evaluate: - { id: mongo.object, arg: dataSize, type: double, metric_name: size } - { id: mongo.object, arg: ok, type: double, metric_name: ok } - id: mongodb.server.apm type: mongo expression: "{ serverStatus: 1 }" source: mongodb_apm_datasource evaluate: - { id: mongo.object, arg: ok, type: double, metric_name: ok } - { id: mongo.object, arg: version, type: string, metric_name: version }
rpa.yml
The configuration file describes recovery mode for rpa hub.
- What does recovery mode means?
Recovery mode is mechanism of bootstrapping of rpa part.
- How it works?
We check our remote RPA Platform Monitor to know it is running or not.
If our remote Platform Monitor (Installed on Windows machine) doesn't work Platform Monitor (Installed on Linux machine) will create RDP session.
This session will be closed in 60 seconds. When user logs in remote Platform Monitor will start.
This command is impossible to run from UI.
server.port: 10101
modules.pmrpa:
credentials:
- id: rpahostname1
user: user
password: password
alerts:
- id: agent.rpa.%host%
triggers:
- { metric: agent.check.rpa.%host%.size, eq: 0 }
items: rpa.hubs
checks:
- id: agent.check.rpa.%host%
type: custom
schedule: 20
evaluate:
- { id: agent.validate, parameters: { ns: "%host%:10000" }, metric_name: "size" }
items: rpa.hubs
processes:
- id: xvfb
expression: "Xvfb :0 -ac"
commands:
- id: agent.%host%.start
type: command
expression: timeout 10 rdesktop -0 -u %user% %host% -p '%password%'
credentials: "%host%"
schedule: 120
alerts: [ agent.rpa.%host% ]
items: rpa.hubs
Application server configuration
app.yml
The configuration file describes general configuration of application Platform Monitor.
The configuration creates group for components.
groups:
- { id: app, name: "APP Components" }
bot-manager.yml
The configuration file describes the Bot Manager configuration of application Platform Monitor.
The file consists of four main parts:
The first part contains information about component and alert which are connected with Bot Manager.
components: - { id: rpa.gr, name: "Bot Manager", group: app, alerts: [ rpa.gr ] } alerts: - id: rpa.gr triggers: - { metric: rpa.gr.hubs.status, neq: 0, message: "Bot Manager web check failed" } - { metric: rpa.gr.hubs.http.code, neq: 200, message: "Bot Manager has non-200 response code" } - { metric: rpa.gr.hc.status, neq: 0, message: "Bot Manager Healthcheck failed" } - { metric: rpa.gr.hc.http.code, neq: 200, message: "Bot Manager Healthcheck API has non-200 response code" } - { metric: rpa.gr.hc.health.check.errors, neq: 0, message: "Healthcheck API response contains errors", type: partial_outage } - { metric: rpa.gr.hc.health.check.warnings, neq: 0, message: "Healthcheck API response contains warnings", type: partial_outage }The second part contains command for restarting Bot Manager.
commands: - id: restart.bot.manager type: command proxy: true expression: "%install_dir%/apps/rpa_manager/rpa_manager restart"The third part contains checks.
checks: - id: rpa.gr.hubs description: "Generate all hubs from SG" type: http expression: "/api/selenograph/hubs" source: RpaGridRouter evaluate: - { id: rpa.manager.hubs, arg: rpa.hubs } - id: rpa.gr.host.%host% type: http expression: /api/metrics/hub/%host% description: "Get hub's metrics from SG" source: RpaGridRouter ns: "%host%:%port%" evaluate: - { id: http.json, arg: "register_all" } items: rpa.hubs - id: rpa.gr.node.%origin%.%port% type: http expression: /api/metrics/node/%origin%:%port% description: "Get nodes's metrics from SG" source: RpaGridRouter ns: "%origin%:%port%" evaluate: - { id: http.json, arg: "register_all" } items: nodesThe fourth part contains health checks (more details).
checks: - id: rpa.gr.hc description: "Get Bot Manager health check info" type: http-json source: RpaGridRouter expression: "/api/healthcheck" evaluate: - { id: health.check, arg: rpa.gr }
control-tower.yml
The configuration file describes Control Tower configuration of application Platform Monitor.
This file consists of four main parts:
The first part contains information about component and alert connected with Control Tower:
components: - { id: ct, name: Control Tower, group: app, alerts: [ ct ] } alerts: - id: ct triggers: - { metric: ct.login.status, neq: 0, message: "Web check failed" } - { metric: ct.login.http.code, neq: 200, message: "Bad response code" } - { metric: ct.hc.status, neq: 0, message: "Healthcheck API call failed" } - { metric: ct.hc.http.code, neq: 200, message: "Healthcheck API has bad response code" } - { metric: ct.hc.health.check.errors, neq: 0, message: "Healthcheck API response contains errors", type: partial_outage } - { metric: ct.hc.health.check.warnings, neq: 0, message: "Healthcheck API response contains warnings", type: partial_outage }The second part contains a command for restarting Control Tower.
commands: - id: restart.control.tower type: command proxy: true expression: "%install_dir%/apps/webapps/tomcat.init restart"The third part contains checks.
- id: ct.login type: http expression: "/%wf_art_name%/login" source: NginxThe fourth part contains health checks (more details).
checks: - id: ct.hc description: "Get ControlTower health check info" type: http-json source: Nginx expression: "/workfusion/api/v1/health-check?checkExternalComponents=true" evaluate: - { id: health.check, arg: ct }
nginx.yml
The configuration file describes nginx configuration of application Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with Nginx.
components: - { id: nginx, name: Nginx, group: app, description: "Nginx component", alerts: [ nginx ] } alerts: - id: nginx triggers: - { metric: nginx.monitoring.status, neq: 0, message: "Problem with nginx connection" }The second part contains command for restarting Nginx.
commands: - id: restart.nginx type: command proxy: true expression: "%install_dir%/apps/nginx/nginx.init restart"The third part contains checks.
checks: - id: nginx.monitoring type: tcp source: Nginx
nlp-uima.yml
The configuration file describes nlp uima rest configuration of application Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with nlp uima rest.
components: - { id: nlp.uima.rest, name: "Nlp Uima Rest", group: app, description: "Version %nlp.uima.rest.version%", alerts: [ nlp.uima.rest ] } alerts: - id: nlp.uima.rest triggers: - { metric: nlp.uima.rest.status, neq: 0, message: "Web check failed" } - { metric: nlp.uima.rest.http.code, neq: 200, message: "Bad response code" }The second part contains command for restarting nlp uima rest.
commands: - id: restart.nlp.uima type: command proxy: true expression: "%install_dir%/apps/nlp-uima-rest/tomcat-nlp-uima-rest.init restart"The third part contains checks.
checks: - id: nlp.uima.rest type: http expression: "/nlp-uima-rest/meta-model/project-info" source: Nginx evaluate: - { id: http.json, arg: version, type: string, metric_name: version }
service-wfbi.yml
The configuration file describes service WFBI configuration of application Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with service WFBI.
components: - { id: service.wfbi, name: "Service WFBI", group: app, description: "Version %service.wfbi.version%", alerts: [ service.wfbi ] } alerts: - id: service.wfbi triggers: - { metric: service.wfbi.status, neq: 0, message: "Web check failed" } - { metric: service.wfbi.http.code, neq: 200, message: "Bad response code" }The second part contains command for restarting service WFBI.
commands: - id: restart.service.wfbi type: command proxy: true expression: "%install_dir%/apps/webapps/tomcat.init restart"The third part contains checks.
checks: - id: service.wfbi type: http expression: "/service-wfbi/tableau/project-info" source: Nginx credentials: ServiceWfbi evaluate: - { id: http.json, arg: version, type: string, metric_name: version }
workspace.yml
The configuration file describes WorkSpace configuration of application Platform Monitor.
The file consists of four main parts:
The first part contains information about component and alert connected with WorkSpace.
components: - { id: ws, name: WorkSpace, group: app, alerts: [ ws ] } - { id: ws.sandbox, name: WorkSpace Sandbox, group: app, alerts: [ ws.sandbox ] } alerts: - id: ws triggers: - { metric: ws.dashboard.status, neq: 0, message: "Web check failed" } - { metric: ws.dashboard.http.code, neq: 200, message: "Bad response code" } - { metric: ws.hc.status, neq: 0, message: "Healthcheck API call failed" } - { metric: ws.hc.http.code, neq: 200, message: "Healthcheck API has bad response code" } - { metric: ws.hc.health.check.errors, neq: 0, message: "Healthcheck API response contains errors", type: partial_outage } - { metric: ws.hc.health.check.warnings, neq: 0, message: "Healthcheck API response contains warnings", type: partial_outage } - id: ws.sandbox triggers: - { metric: ws.sandbox.dashboard.status, neq: 0, message: "Web check failed" } - { metric: ws.sandbox.dashboard.http.code, neq: 200, message: "Bad response code" } - { metric: ws.sandbox.hc.status, neq: 0, message: "Healthcheck API call failed" } - { metric: ws.sandbox.hc.http.code, neq: 200, message: "Healthcheck API has bad response code" } - { metric: ws.sandbox.hc.health.check.errors, neq: 0, message: "Healthcheck API response contains errors", type: partial_outage } - { metric: ws.sandbox.hc.health.check.warnings, neq: 0, message: "Healthcheck API response contains warnings", type: partial_outage }The second part contains command for restarting WorkSpace.
commands: - id: restart.workspace type: command proxy: true expression: "%install_dir%/apps/webapps/tomcat.init restart"The third part contains checks.
checks: - id: ws.dashboard type: http expression: "/workspace/index.htm" source: Nginx - id: ws.hc description: "Get Workspace health check info" type: http-json source: Nginx expression: "/workspace/api/monitor/health-check" evaluate: - { id: health.check, arg: ws } - id: ws.sandbox.dashboard type: http expression: "/workspace-sandbox/index.htm" source: NginxThe fourth part contains health checks (more details).
checks: - id: ws.sandbox.hc description: "Get Workspace Sandbox health check info" type: http-json source: Nginx expression: "/workspace-sandbox/api/monitor/health-check" evaluate: - { id: health.check, arg: ws.sandbox }
Database server configuration
db.yml
The configuration file describes general configuration of database Platform Monitor.
The configuration creates group for components.
groups:
- { id: db, name: "DB Components" }
mongodb-ocr.yml
The configuration file describes configuration of mongo datasource and check for it.
The file consists of three main parts:
The first part contains enviroment variables which need to create connection to MongoDB.
Values of variables are not real.
environment: mongodb_ocr_hostname: localhost mongodb_ocr_database: wfagent mongodb_ocr_admin_database: admin mongodb_ocr_port: 13017 mongodb_ocr_read_only_user: wfagent mongodb_ocr_read_only_password: passwordThe second part contains a command for restarting MongoDb.
commands: - id: restart_mongo_ocr type: command proxy: true expression: "%install_dir%/apps/mongodb/mongod.init restart"The third part contains checks which need to get current status of database and Mongo server.
checks: - id: mongodb.db.ocr type: mongo expression: "{ dbStats: 1 }" source: mongodb.ocr.datasource evaluate: - { id: mongo.object, arg: dataSize, type: double, metric_name: size } - { id: mongo.object, arg: ok, type: double, metric_name: ok } - id: mongodb.server.ocr type: mongo expression: "{ serverStatus: 1 }" source: mongodb.ocr.admin.datasource evaluate: - { id: mongo.object, arg: ok, type: double, metric_name: ok } - { id: mongo.object, arg: version, type: string, metric_name: version }
mongodb-rpa.yml
The configuration file describes configuration of mongo datasource and check for it.
The file consists of three main parts:
The first part contains enviroment variables which need to create connection to MongoDB.
Values of variables are not real.
environment: mongodb_rpa_hostname: localhost mongodb_rpa_database: wfagent mongodb_rpa_admin_database: admin mongodb_rpa_port: 13017 mongodb_rpa_read_only_user: wfagent mongodb_rpa_read_only_password: passwordThe second part contains a command for restarting MongoDb.
commands: - id: restart_mongo_rpa type: command proxy: true expression: "%install_dir%/apps/mongodb/mongod.init restart"The third part contains checks which need to get current status of database and mongo server.
checks: - id: mongodb.db.rpa type: mongo expression: "{ dbStats: 1 }" source: mongodb.rpa.datasource evaluate: - { id: mongo.object, arg: dataSize, type: double, metric_name: size } - { id: mongo.object, arg: ok, type: double, metric_name: ok } - id: mongodb.server.rpa type: mongo expression: "{ serverStatus: 1 }" source: mongodb.rpa.admin.datasource evaluate: - { id: mongo.object, arg: ok, type: double, metric_name: ok } - { id: mongo.object, arg: version, type: string, metric_name: version }
mysql.yml
The configuration file describes MySql configuration of database Platform Monitor. The file consists of three main parts:
The first part contains information about component and alert connected with MySQL.
components: - { id: mysql, name: MySQL, group: db, description: "Version %mysql.query2.version%", alerts: [ mysql ] } alerts: - id: mysql triggers: - { metric: mysql.query1.status, neq: 0, message: "Problem with mysql query" }The second part contains command for restarting MySQL.
commands: - id: restart.mysql type: command proxy: true expression: "%install_dir%/apps/mysql/mysql.init restart"The third part contains checks.
checks: - id: mysql.query1 type: sql expression: "select database() as db" source: Mysql evaluate: - { id: sql.output, arg: db, type: string, metric_name: name } - id: mysql.query2 type: sql expression: "select version() as version" source: Mysql evaluate: - { id: sql.output, arg: version, type: string, metric_name: version }
nexus.yml
The configuration file describes Nexus configuration of database Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with Nexus.
components: - { id: nexus, name: Nexus, group: db, description: "Nexus component", alerts: [ nexus ] } alerts: - id: nexus triggers: - { metric: nexus.monitoring.status, neq: 0, message: "Problem with nexus connection" }The second part contains a command for restarting Nexus.
commands: - id: restart.nexus type: command proxy: true expression: "%install_dir%/apps/nexus/nexus/bin/nexus restart"The third part contains checks.
checks: - id: nexus.monitoring type: http expression: "/nexus/service/local/status" source: Nexus parameters: accept_type: "application/json" evaluate: - { id: http.json, arg: register_all }
postgres.yml
The configuration file describes PostgreSQL configuration of database Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with PostgreSQL.
components: - { id: postgres, name: PostgreSQL, group: db, description: "Version %postgres.query2.version%", alerts: [ postgres ] } alerts: - id: postgres triggers: - { metric: postgres.query1.status, neq: 0, message: "Problem with postgres query" }The second part contains command for restarting PostgreSQL.
commands: - id: restart.postgres type: command proxy: true expression: "%install_dir%/apps/pgsql/%postgres_version%/data/postgresql-%postgres_version%.init restart"The third part contains checks.
checks: - id: postgres.query1 type: sql expression: "select current_database() as db" source: Postgres evaluate: - { id: sql.output, arg: db, type: string, metric_name: name } - id: postgres.query2 type: sql expression: "select version() as version" source: Postgres evaluate: - { id: sql.output, arg: version, type: string, metric_name: version }
riak.yml
This configuration file describes Riak configuration of database Platform Monitor.
The file consists of two main parts:
The first part contains information about component and alert connected with Riak.
commands: - id: restart.riak type: command proxy: true expression: "%install_dir%/apps/s3emu/s3emu.init restart" alerts: - id: riak triggers: - { metric: riak.stats.status, neq: 0, message: "Web check failed" } - { metric: riak.stats.http.code, neq: 200, message: "Bad response code" } - { metric: riak.tcp.status, neq: 0, message: "Problem with riak.tcp check" } - { metric: riak.tcp.listening, neq: 1, message: "No TCP port is listening" } - { metric: stanchion.tcp.status, neq: 0, message: "Problem with stanchion.tcp check" } - { metric: stanchion.tcp.listening, neq: 1, message: "No TCP port is listening" } - { metric: riakcs.tcp.status, neq: 0, message: "Problem with riakcs.tcp check" } - { metric: riakcs.tcp.listening, neq: 1, message: "No TCP port is listening" }The second part contains checks.
checks: - id: riak.stats type: http expression: "/stats" source: Riak evaluate: - { id: http.json, arg: "riak_core_version", type: string, metric_name: version } - id: riak.tcp type: tcp source: RiakTcp - id: stanchion.tcp type: tcp source: StanchionTcp - id: riakcs.tcp type: tcp source: RiakCsTcp - id: s3cmd.ls type: command expression: "%install_dir%/lib/s3cmd/s3cmd -c %install_dir%/apps/s3emu/etc/s3cfgfasttrack ls" evaluate: - { id: command.exit }
solr.yml
The configuration file describes Solr configuration of database Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with Solr.
components: - { id: solr, name: Solr, group: db, description: "Version %solr.version%", alerts: [ solr ] } alerts: - id: solr triggers: - { metric: solr.status, neq: 0, message: "Web check failed" } - { metric: solr.http.code, neq: 200, message: "Bad response code" }The second part contains a command for restarting Solr.
commands: - id: restart.solr type: command proxy: true expression: "%install_dir%/apps/solr/solr.init restart"The third part contains checks.
checks:
- id: solr
type: http
expression: "/solr/admin/info/system?wt=json"
source: Solr
evaluate:
- { id: http.json, arg: "lucene.solr-spec-version", type: string, metric_name: version }
vault.yml
The configuration file describes Vault configuration of database Platform Monitor.
The file consists of three main parts:
The first part contains information about component and alert connected with Vault.
components: - { id: vault, name: Vault, group: db, description: "Vault component", alerts: [ vault ] } alerts: - id: vault triggers: - { metric: vault.monitoring.status, neq: 0, message: "Problem with vault connection" }
The second part contains a command for restarting Vault.
commands:
- id: restart.vault
type: command
proxy: true
expression: "%install_dir%/apps/vault/vault.init restart"
The third part contains checks.
checks: - id: vault.monitoring type: tcp source: Vault
OCR server configuration
ocr.yml
The configuration file describes general configuration of OCR Platform Monitor.
The configuration creates a group for components.
groups:
- { id: ocr, name: "OCR Components" }
rest.yml
The configuration file describes OCR REST configuration of OCR Platform Monitor.
The file consists of four main parts:
The first part contains information about component and alert connected with OCR REST.
components: - { id: ocr.rest, name: OCR Rest, group: ocr, description: "Version %ocr.rest.info.version%", alerts: [ ocr.rest ] } alerts: - id: ocr.rest triggers: - { metric: ocr.rest.api.status, neq: 0, message: "OCR API check failed" } - { metric: ocr.rest.api.time, gte: 20000, type: performance, message: "OCR API has long response time" } - { metric: ocr.rest.api.http.code, neq: 200, message: "OCR API has non-200 response code" } - { metric: ocr.hc.status, neq: 0, message: "OCR Healthcheck call failed " } - { metric: ocr.hc.http.code, neq: 200, message: "OCR API has non-200 response code" } - { metric: ocr.hc.health.check.errors, neq: 0, message: "OCR Healthcheck API response contains errors", type: partial_outage } - { metric: ocr.hc.health.check.warnings, neq: 0, message: "OCR Healthcheck API response contains warnings", type: partial_outage }The second part contains a command for restarting OCR REST.
commands: - id: restart.ocr type: command proxy: true expression: "%install_dir%/apps/ocr/ocr2.init restart"The third part contains checks.
checks: - id: ocr.rest.api type: http expression: "/" source: OcrRest - id: ocr.rest.summary type: http expression: "/api/v1/cloud/summary" source: OcrRest - id: ocr.rest.info type: http expression: "/api/project-info" source: OcrRest evaluate: - { id: http.json, arg: version, type: string, metric_name: version } - id: ocr.rest.tasks type: http expression: "/api/v1/metrics/count?status=PROCESSING&period=1440" source: OcrRest evaluate: - { id: http.response, type: int, metric_name: processing }The fourth part contains health checks (more details).
checks: - id: ocr.hc description: "Get OCR health check info" type: http-json source: OcrRest expression: "/api/v1/health-check" evaluate: - { id: health.check, arg: ocr.rest }
worker.yml
The configuration file describes OCR worker configuration of OCR Platform Monitor.
The file consists of two main parts:
The first part contains information about component and alert connected with OCR worker.
components: - { id: ocr.worker, name: OCR Worker, group: ocr, alerts: [ ocr.worker ] } alerts: - id: ocr.worker triggers: - { metric: ocr.worker.status, neq: 0, message: "Process check command failed" } - { metric: ocr.worker.command.exit, neq: 0, message: "OCR worker process not found" }The second part contains checks.
checks: - id: ocr.worker type: command expression: "pgrep -f ocr-worker-" evaluate: - { id: command.exit }
license.yml
The configuration file describes licence server configuration of OCR Platform Monitor.
It is disabled by default.
ML Server
Mesos cluster
The configuration file describes Mesos Cluster configuration of ML Platform Monitor.
The first part contains information about the environment that describes the location of Mesos REST API.
vds_cluster.yml- environment:environment: mesos_host: localhost mesos_port: 5050 mesos_protocol: https mesos_user: admin mesos_password: adminThe second part contains information about component and alert that are connected with Mesos REST API:
vds_cluster.yml- component:credentials: - id: mesos user: "%mesos_user%" password: "%mesos_password%" components: - { id: ml.cluster, name: ML Cluster, group: ml, description: "ML cluster", alerts: [ ml.cluster ] } datasources: - { id: ml.mesos, protocol: "%mesos_protocol%", host: "%mesos_host%", port: "%mesos_port%", type: http } alerts: - id: ml.cluster triggers: - { metric: cluster.api.status, neq: 0, message: "Web check failed" } - { metric: cluster.api.http.code, neq: 200, message: "Bad response code" }The third part contains checks.
vds_cluster.yml- checks:checks: - id: cluster.api type: http expression: "/slaves" source: ml.mesos credentials: mesos - id: cluster.memory type: http expression: "/slaves" source: ml.mesos credentials: mesos evaluate: - { id: http.json, arg: "slaves.resources.mem", type: double, metric_name: memtotal } - { id: http.json, arg: "slaves.used_resources.mem", type: double, metric_name: used } - { id: expression, arg: "%memtotal% - %used%", type: double, metric_name: available } - id: cluster.cpu type: http expression: "/slaves" source: ml.mesos credentials: mesos evaluate: - { id: http.json, arg: "slaves.resources.cpus", type: double, metric_name: amount.cpuamount } - { id: http.json, arg: "slaves.used_resources.cpus", type: double, metric_name: util.cpuamount } - id: cluster.disk type: http expression: "/slaves" source: ml.mesos credentials: mesos evaluate: - { id: http.json, arg: "slaves.resources.disk", type: double, metric_name: total } - { id: http.json, arg: "slaves.used_resources.disk", type: double, metric_name: used } - { id: expression, arg: "%total% - %used%", type: double, metric_name: free }These checks extract capacity info using Mesos API. Capacity of all resources is represented as a sum of values from all nodes.
ML Node
The configuration file describes ML Node configuration of ML Platform Monitor.
The first part contains information about environment of ML Node that may be a hostname for the non-standalone installation:
vds_node.yml:environment: agent.ns: {{ hostname }}The second part contains information about the component of Mesos REST API:
vds_node.yml- component:components: - { id: ml.node, name: ML Node, group: ml, description: "ML node", alerts: [ server ] }
Common configuration
agent.yml
The configuration file describes configuration for slave Platform Monitors (app, db, ocr).
The file consists of checks needed to transfer data to master Platform Monitor.
checks:
- id: pm.sync
type: sync
schedule: 20
source: PmMaster
credentials: ${environment.agent.credentials}
auth.yml
The configuration file describes auth configuration.
Auth is enabled by default.
System configuration
linux.yml
The configuration file describes checks of Linux Platform Monitor.
checks:
- id: server.disk
type: java
evaluate:
- { id: disk.space, arg: "/", metric_name: root }
- { id: disk.space, arg: "%install_dir%", metric_name: install }
- id: server.memory
type: command
expression: "cat /proc/meminfo"
evaluate:
- { id: table.value.index, arg: "0,MemTotal,1", metric_name: memtotal }
- { id: table.value.index, arg: "0,MemFree,1", metric_name: memfree }
- { id: table.value.index, arg: "0,Cached,1", metric_name: cached }
- { id: table.value.index, arg: "0,Buffers,1", metric_name: buffers }
- { id: table.value.index, arg: "0,SwapTotal,1", metric_name: swaptotal }
- { id: table.value.index, arg: "0,SwapFree,1", metric_name: swapfree }
- { id: expression, arg: "%memfree% + %cached% + %buffers%", metric_name: available }
- id: server.cpu.amount
type: command
expression: "lscpu"
evaluate:
- { id: table.value.index, arg: "0,CPU[(]s,1", metric_name: cpuamount }
- id: server.cpu.util
type: command
expression: "cat /proc/loadavg"
evaluate:
- { id: command.cpu.util, metric_name: load, type: double }