Skip to content

Repository files navigation

IN DEVELOPMENT

Mongraph

Monitor infrastructure nodes and visualize it as graph

How to start

  1. setup config/config.yml
  2. (optional) setup static/graphs/root.mermaid and other mermaid-files based on links from config-file
  3. start the server by docker compose up
  4. open in browser by http://localhost:8000/

Supported chart types

Config sturucture:

  • label: name of project
  • ui_update_interval: UI update frequency in seconds
  • graph_file: name of mermaid graph file in config/graph/ folder
  • database_uri: local redis-compatible database address
  • defaults: default values of node settings
    • update_interval: update node metric frequency in seconds
    • levels: metric value levels setting
      • normal: condition for normal-status. If it defined, then metric status mode is normal/danger.
      • warning: condition for normal-status
      • danger: condition for normal-status
      • measurement: level measurement for output
  • notifications: notification settings
    • delay: time shift before to notify
    • min_status: minimum metric statis for notification
    • recipients: list of recipients. Supported: shell-command and emails (via smtp-link)
  • providers: setting for metric providers
    • [name of provider]:
      • type: type of provider. Supported: prometeus and plaintext
      • metric_source: URI or group of metric_source-settings
        • only_for_inheritance: true/false - to use metric_source or leave it's as base settings for metrics
        • data_source: URI to metric data source or group of it parts
          • uri: any supported link. Look at sample of URI syntax group
          • query: query-part of uri (if it is http/https type). Primary for inheritance cases (useful in metrics part).
          • body: body-part or uri (if it is http/https type)
        • request_timeout: request timeout in seconds
        • update_interval: reload data frequency in seconds
        • mask_re: perl regular expression with possible to extract: datetime, name, value, location and details. Example: "^(?P<datetime>[^ ] [^ ])\s+(?P<name>[^\s]+)\s+(?P<value>[^\s]+)"
        • node_name_attr: name of data from mask_re which will be used as node name (group metrics by nodes)
        • value_source: specific source of metric value. Supported: http-code, exit-code
        • datetime_format: datetime pattern for datetime of data from mask_re
        • rows_filter: condition
      • metrics: list of metric settings
        • [name of metric]:
          • metric_source: url or group of metric_source-settings (with inheritance of provider's block. filter downloaded data by provider or make request by modified url)
          • levels: metric value levels setting for provider metric (structure same as in defaults)
  • nodes: setting for nodes tree
    • [node name]: node name
      • label: label of node
      • graph_file: name of mermaid graph file of node childs in config/graph/ folder
      • child_nodes_from_provider: list of links to provider metric
        • [provider://iac-prometeus?filter=(location!='private')&node_name_attr=name,instance]
      • child_nodes: list of child nodes
        • [child node name]: child node name
          • metric_source: URI or group of metric_source-settings (structure same as for providers)
          • levels: metric value levels setting for provider metric (structure same as in defaults)

sample of URI syntax:

About

Monitor infrastructure nodes and visualize it as graph

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages