Skip to main content

弹性搜索指标

项目描述

https://travis-ci.org/ByteInternet/elasticmetrics.svg?branch=master

从 ElasticSearch 收集性能指标。

elasticmetrics是一个 Python 库,旨在用于不同的上下文并易于与其他工具集成。数据收集、转换和报告的每个步骤都在一个单独的可重用模块中定义:

  • 收集器:收集数据的抽象逻辑。

  • 指标:抽象选择和/或聚合测量(指标)

  • formatters:将指标转换为其他格式。

  • 工具:结合其他模块的功能,形成一个 CLI 应用程序

收藏家

collectors.ElasticSearchCollector通过调用 ElasticSearch API 收集集群和节点统计信息。

from elasticmetrics.collectors import ElasticSearchCollector

collector = ElasticSearchCollector('es.example.org')
collector.cluster_health()  # call _cluster/health, get ES cluster high level stats
collector.cluster_stats()  # call _cluster/stats, get ES cluster detailed stats
collector.node_stats()  # call _node/_local/stats, get ES node detailed stats


# collector supports detailed configurations like
# SSL, basic HTTP auth with UTF-8 credentials, and control over SSL context
insecure_ssl_collector = ElasticSearchCollector(
                            'localhost',
                            port=9200,
                            scheme='https',
                            user=u't€stuser',
                            password=u't€stpássword',
                            ssl_context={'no_cert_verify': True}
                         )

返回的值正是从 Elasitc API 返回的值。

组成特征

来自不同模块的功能可以组合在一起以实现预期的行为。

from elasticmetrics.collectors import ElasticSearchCollector
from elasticmetrics.metrics import node_performance_metrics
from elasticmetrics.formatters import flatten_metrics

collector = ElasticSearchCollector(
                'es.example.org',
                scheme='https',
                user='testuser',
                password='testpassword'
            )
metrics_as_dotted_paths = flatten_metrics(
    node_performance_metrics(collector.node_stats()),
    prefix='example_es_server'
)
# metrics_as_dotted_paths can be pushed to a time series backend, like Graphite

安装

$ pip install elasticmetrics

唯一的依赖项是 Python 2.7+/3.4+ 和 setuptools。

然而,在开发(和测试)环境 pytestmockpycodestyle是必需的。

# on dev/test env
$ pip install -r requirements/dev.txt

命令行工具

elasticmetrics.tool是一个 CLI 程序,它公开了该库的一些功能。导入时会执行:

$ python -m elasticmetrics.tool --help

弹性凭证可以作为参数传递,也可以设置为环境变量。下面的示例将通过 HTTPS 连接到 ElasticSearch 在 localhost 上的默认端口上侦听,并且仅收集节点统计信息,并从环境变量中读取访问凭据。

$ export ELASTICSEARCH_USER="someuser"
$ export ELASTICSEARCH_PASSWORD="somepassword"
$ python -m elasticmetrics.tool --ssl --quiet --collect node_stats

发展

测试

Tox最方便运行测试,因为它处理 virtualenvs 的创建

$ tox

或者当安装了开发依赖时(最好是虚拟环境),可以通过直接调用pytest来运行测试。

$ pytest

执照

elasticmetrics 是根据 MIT 许可条款发布的。

麻省理工学院许可证 (MIT)

版权所有 (c) 2019 字节 BV

特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

elasticmetrics-0.1.1.tar.gz (10.7 kB 查看哈希

已上传 source

内置分布

elasticmetrics-0.1.1-py3-none-any.whl (13.5 kB 查看哈希

已上传 py3