xonotic-exporter


Namexonotic-exporter JSON
Version 0.1 PyPI version JSON
download
home_page
SummaryXonotic metrics exporter for prometheus monitoring
upload_time2018-03-20 11:23:13
maintainer
docs_urlNone
authorSlava Bacherikov
requires_python
licenseGPLv3
keywords rcon xonotic darkplaces quake nexuiz prometheusnexuiz metrics monitoring
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            xonotic_exporter
================

.. image:: https://travis-ci.org/bacher09/xonotic_exporter.svg?branch=master
    :target: https://travis-ci.org/bacher09/xonotic_exporter

.. image:: https://ci.appveyor.com/api/projects/status/github/bacher09/xonotic_exporter?svg=true&branch=master
    :target: https://ci.appveyor.com/project/bacher09/xonotic-exporter

.. image:: https://coveralls.io/repos/bacher09/xonotic_exporter/badge.svg?branch=master
    :target: https://coveralls.io/r/bacher09/xonotic_exporter?branch=master 


Xonotic metrics exporter for `Prometheus monitoring system`_.
Metrics are obtained by querying server via rcon (``status 1`` command).

Installation
------------

  * execute ``pip install xonotic_exporter``
  * or run ``pip install -e git+https://github.com/bacher09/xonotic_exporter#egg=xonotic_exporter``
    to install latest development version from github


Configuration
-------------

Xonotic exporter is configured by file and CLI options. CLI options is used to
specify which port or address to listen, what configuration to use and
configuration file is used to specify servers from where metrics will be
exported. Configuration file is YAML dictionary, where keys are server names
(`instance` label in prometheus) and values are server connection options.
Here's example configuration::

  public:
    server: 172.16.254.1
    port: 26000
    rcon_password: "secretpassword"
    rcon_mode: 1
  private:
    server: private.example.com
    rcon_password: "secret"
  ipv6-server:
    server: 2001:db8:85a3::8a2e:370:7334
    port: 26001
    rcon_mode: 2
    rcon_password: "password"


Connection options have few required fields (``server``, ``rcon_password``) and
also some optional fields (``port``, ``rcon_mode``) which have default value.
`server` field might contain IPv4 or IPv6 address or DNS name. If you are using
DNS name, it will be resolved each time before making request to server, so if
you change DNS record you don't need to restart exporter to use new IP.
For more info about configuration file format you can check `it's JSON schema`__.
Also, you can check correctness of configuration using ``--validate`` CLI option.

__ json_schema_

If you edit configuration file, you can update configuration without restarting
Xonotic exporter, just send ``HUP`` signal to process or send POST request to
``/-/reload`` endpoint.

For example::

  $ kill -HUP 4429   # 4429 is exporters PID
  $ curl -XPOST http://localhost:9260/-/reload


Prometheus Configuration
------------------------

The exporter needs server name to be passed as target parameter. It similar to
blackbox_ and snmp_ exporters.

Example prometheus configuration::

  scrape_configs:
    - job_name: 'xonotic_exporter'
      relabel_configs:
        - source_labels: [__address__]
          target_label: __param_target
        - source_labels: [__param_target]
          target_label: instance
        - target_label: __address__
          replacement: 127.0.0.1:9260
      static_configs:
        - targets: ['public', 'private', 'ipv6-server']  # server names


Other features
--------------

Instead off using configuration file you can start xonotic exporter using
Python API. For more information `see this code`__. This gives you ability for
dynamic configuration and server autodiscovery.

__ dynamic_configuration

If you going to deploy this service with systemd check examples folder, there
is example `systemd unit`__ for this service.

__ systemd_unit_


.. _`Prometheus monitoring system`: https://prometheus.io/
.. _json_schema: https://github.com/bacher09/xonotic_exporter/blob/master/xonotic_exporter/config_schema.json
.. _blackbox: https://github.com/prometheus/blackbox_exporter
.. _snmp: https://github.com/prometheus/snmp_exporter
.. _dynamic_configuration: https://github.com/bacher09/xonotic_exporter/blob/master/xonotic_exporter/cli.py#L56
.. _systemd_unit: https://github.com/bacher09/xonotic_exporter/blob/master/examples/xonotic_exporter.service
            

Raw data

            {
    "_id": null,
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "cheesecake_code_kwalitee_id": null,
    "keywords": "rcon,xonotic,darkplaces,quake,nexuiz,prometheusnexuiz,metrics,monitoring",
    "upload_time": "2018-03-20 11:23:13",
    "author": "Slava Bacherikov",
    "home_page": "",
    "download_url": "https://pypi.python.org/packages/6d/e9/2d972dbd43ec60530fd97272c787fa8d3bd20c78027a75f20ee294abbb25/xonotic_exporter-0.1.tar.gz",
    "platform": "any",
    "version": "0.1",
    "cheesecake_documentation_id": null,
    "description": "xonotic_exporter\n================\n\n.. image:: https://travis-ci.org/bacher09/xonotic_exporter.svg?branch=master\n    :target: https://travis-ci.org/bacher09/xonotic_exporter\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/bacher09/xonotic_exporter?svg=true&branch=master\n    :target: https://ci.appveyor.com/project/bacher09/xonotic-exporter\n\n.. image:: https://coveralls.io/repos/bacher09/xonotic_exporter/badge.svg?branch=master\n    :target: https://coveralls.io/r/bacher09/xonotic_exporter?branch=master \n\n\nXonotic metrics exporter for `Prometheus monitoring system`_.\nMetrics are obtained by querying server via rcon (``status 1`` command).\n\nInstallation\n------------\n\n  * execute ``pip install xonotic_exporter``\n  * or run ``pip install -e git+https://github.com/bacher09/xonotic_exporter#egg=xonotic_exporter``\n    to install latest development version from github\n\n\nConfiguration\n-------------\n\nXonotic exporter is configured by file and CLI options. CLI options is used to\nspecify which port or address to listen, what configuration to use and\nconfiguration file is used to specify servers from where metrics will be\nexported. Configuration file is YAML dictionary, where keys are server names\n(`instance` label in prometheus) and values are server connection options.\nHere's example configuration::\n\n  public:\n    server: 172.16.254.1\n    port: 26000\n    rcon_password: \"secretpassword\"\n    rcon_mode: 1\n  private:\n    server: private.example.com\n    rcon_password: \"secret\"\n  ipv6-server:\n    server: 2001:db8:85a3::8a2e:370:7334\n    port: 26001\n    rcon_mode: 2\n    rcon_password: \"password\"\n\n\nConnection options have few required fields (``server``, ``rcon_password``) and\nalso some optional fields (``port``, ``rcon_mode``) which have default value.\n`server` field might contain IPv4 or IPv6 address or DNS name. If you are using\nDNS name, it will be resolved each time before making request to server, so if\nyou change DNS record you don't need to restart exporter to use new IP.\nFor more info about configuration file format you can check `it's JSON schema`__.\nAlso, you can check correctness of configuration using ``--validate`` CLI option.\n\n__ json_schema_\n\nIf you edit configuration file, you can update configuration without restarting\nXonotic exporter, just send ``HUP`` signal to process or send POST request to\n``/-/reload`` endpoint.\n\nFor example::\n\n  $ kill -HUP 4429   # 4429 is exporters PID\n  $ curl -XPOST http://localhost:9260/-/reload\n\n\nPrometheus Configuration\n------------------------\n\nThe exporter needs server name to be passed as target parameter. It similar to\nblackbox_ and snmp_ exporters.\n\nExample prometheus configuration::\n\n  scrape_configs:\n    - job_name: 'xonotic_exporter'\n      relabel_configs:\n        - source_labels: [__address__]\n          target_label: __param_target\n        - source_labels: [__param_target]\n          target_label: instance\n        - target_label: __address__\n          replacement: 127.0.0.1:9260\n      static_configs:\n        - targets: ['public', 'private', 'ipv6-server']  # server names\n\n\nOther features\n--------------\n\nInstead off using configuration file you can start xonotic exporter using\nPython API. For more information `see this code`__. This gives you ability for\ndynamic configuration and server autodiscovery.\n\n__ dynamic_configuration\n\nIf you going to deploy this service with systemd check examples folder, there\nis example `systemd unit`__ for this service.\n\n__ systemd_unit_\n\n\n.. _`Prometheus monitoring system`: https://prometheus.io/\n.. _json_schema: https://github.com/bacher09/xonotic_exporter/blob/master/xonotic_exporter/config_schema.json\n.. _blackbox: https://github.com/prometheus/blackbox_exporter\n.. _snmp: https://github.com/prometheus/snmp_exporter\n.. _dynamic_configuration: https://github.com/bacher09/xonotic_exporter/blob/master/xonotic_exporter/cli.py#L56\n.. _systemd_unit: https://github.com/bacher09/xonotic_exporter/blob/master/examples/xonotic_exporter.service",
    "lcname": "xonotic-exporter",
    "name": "xonotic-exporter",
    "github": false,
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Xonotic metrics exporter for prometheus monitoring",
    "split_keywords": [
        "rcon",
        "xonotic",
        "darkplaces",
        "quake",
        "nexuiz",
        "prometheusnexuiz",
        "metrics",
        "monitoring"
    ],
    "author_email": "slava@bacher09.org",
    "urls": [
        {
            "has_sig": false,
            "upload_time": "2018-03-20T11:23:13",
            "comment_text": "",
            "python_version": "source",
            "url": "https://pypi.python.org/packages/6d/e9/2d972dbd43ec60530fd97272c787fa8d3bd20c78027a75f20ee294abbb25/xonotic_exporter-0.1.tar.gz",
            "md5_digest": "f69aeaa938d18ed1eb7f7f42297b4d1b",
            "downloads": 0,
            "filename": "xonotic_exporter-0.1.tar.gz",
            "packagetype": "sdist",
            "path": "6d/e9/2d972dbd43ec60530fd97272c787fa8d3bd20c78027a75f20ee294abbb25/xonotic_exporter-0.1.tar.gz",
            "size": 21209
        }
    ],
    "cheesecake_installability_id": null
}
        
Elapsed time: 0.08305s