This library is created for building InfraSonar agents.
pip install pylibagent
| Variable | Default | Description |
|---|---|---|
TOKEN | required | Token to connect to. |
ASSET_ID | required | Asset Id or file location where the Agent asset Id is stored (e.g 123 or /var/infrasonar/asset_id.json). |
API_URI | https://api.infrasonar.com | InfraSonar API. |
VERIFY_SSL | 1 | Verify SSL certificate, 0 (=disabled) or 1 (=enabled). |
LOG_LEVEL | warning | Log level (error, warning, info, debug). |
LOG_COLORIZED | 0 | Log colorized, 0 (=disabled) or 1 (=enabled). |
LOG_FMT | %y%m... | Default format is %y%m%d %H:%M:%S. |
DISABLED_CHECKS_CACHE_AGE | 900 | Time in seconds before we poll again for reading the disabled checks. |
Building an InfraSonar demonized agent.
frompylibagent.agentimportAgentfrompylibagent.checkimportCheckBase__version__="0.1.0"classSampleCheck(CheckBase):
key="sample"interval=300@classmethodasyncdefrun(cls):
return {
"type": [
{
"name": "item",
"metric": 123
}
]
}
if__name__=="__main__":
collector_key="sample"version="0.1.0"checks= [SampleCheck]
Agent(collector_key, version).start(checks)Building an InfraSonar agent.
importasynciofrompylibagent.agentimportAgent__version__="0.1.0"asyncdefmain():
version="0.1.0"collector_key="sample"check_key="sample"agent=Agent(collector_key, version)
awaitagent.announce() # optionally, we can provide an initial asset nameawaitagent.send_data(check_key, {
"type": [
{
"name": "item",
"metric": 123
}
]
})
if__name__=="__main__":
asyncio.run(main())It might happen that a RuntimeError, "can't create new thread" is raised when using the docker agent inside docker.
To solve this issue, add privileged: true to your service in docker compose or start docker with --privileged.