一个帮助您迁移Graphite度量指标的简单工具
项目描述
一个帮助您迁移Graphite度量指标的简单工具
什么是metrics-migration ?
metrics-migration是一个Python3工具(async io),旨在帮助Graphite用户以多种方式迁移度量指标。
迁移整个存储目录。
迁移特定的whisper文件(带有新度量名称)。
在迁移期间允许架构更改(提供架构规则)。
安装
您可以使用任何Python包管理器全局安装aiographite。
pip3 install metrics-migration
依赖
Whisper在PyPI上仅支持Python2,我们应该从GitHub下载whisper egg。
pip3 install https://github.com/graphite-project/whisper/tarball/feature/py3
示例
让我们通过几个示例开始。
示例1. 迁移目录的简单示例。
from migration.migration import Migration
import asyncio
loop = asyncio.get_event_loop()
host = "127.0.0.1"
port = 2003
directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'
async def go():
migration_worker = Migration(directory, host, port, loop=loop)
await migration_worker.connect_to_graphite()
await migration_worker.run()
await migration_worker.close_conn_to_graphite()
def main():
loop.run_until_complete(go())
loop.close()
if __name__ == '__main__':
main()
示例2. 使用新度量迁移whisper文件。
from migration.migration import Migration
import asyncio
loop = asyncio.get_event_loop()
host = "127.0.0.1"
port = 2003
directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'
storage_dir = '/Users/yunx/Documents/PROJECTS/metrics-migration'
metric = "examples.committedPoints"
new_metric = 'hello.world'
async def go():
migration_worker = Migration(directory, host, port, loop=loop, debug=True)
await migration_worker.connect_to_graphite()
await migration_worker.send_one_wsp(storage_dir, metric, new_metric)
await migration_worker.close_conn_to_graphite()
def main():
loop.run_until_complete(go())
loop.close()
if __name__ == '__main__':
main()
示例3. 有多个目录要迁移?
from migration.migration import Migration
import asyncio
loop = asyncio.get_event_loop()
host = "127.0.0.1"
port = 2003
directories_and_prefixes = [
('/opt/graphite/metrics-migration/zon1', 'zon1'),
('/opt/graphite/metrics-migration/zon2', 'zon2'),
]
async def go():
migration_worker = Migration(directory, host, port, loop=loop)
await migration_worker.connect_to_graphite()
for (directory, prefix) in directories_and_prefixes:
wait migration_worker.run(directory=directory, prefix=prefix)
await migration_worker.run()
await migration_worker.close_conn_to_graphite()
def main():
loop.run_until_complete(go())
loop.close()
if __name__ == '__main__':
main()
示例4. 使用上下文管理器的异步操作
from migration.migration import Migration
import asyncio
loop = asyncio.get_event_loop()
host = "127.0.0.1"
port = 2003
directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'
async def go():
"""
Use context manager
"""
async with Migration(directory, host, port, loop=loop, debug=True) as migration_worker:
await migration_worker.run()
def main():
loop.run_until_complete(go())
loop.close()
if __name__ == '__main__':
main()
开发
运行单元测试。
./uranium test
项目详情
关闭
metrics-migration-0.1.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f71ff393410074ca0a1be215b1d37edd5ec0ef36d80ab45e5380045732c15198 |
|
MD5 | ab7780bc778ec37b97293619aa3770a5 |
|
BLAKE2b-256 | 537998d86ead314592c060efd5b283351a3f1abb50154f803a56c21e1e724b48 |
关闭
metrics_migration-0.1.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 447d650d5a9b8013b2a7cfd7c3d3f80ff8df0a9d68672abdd5b67f8b5f9cad34 |
|
MD5 | 20e0bb3d2fb77b95322e73eed16dc2db |
|
BLAKE2b-256 | eef41016d836ecec3482dc7149df082dd72f94fcfb1529769951cfac95139bac |