An open API service indexing awesome lists of open source software.

https://github.com/jkstack/libagent

agent封装类库,用于快速开发agent
https://github.com/jkstack/libagent

agent go

Last synced: 11 months ago
JSON representation

agent封装类库,用于快速开发agent

Awesome Lists containing this project

README

          

# libagent

[![libagent](https://github.com/jkstack/libagent/actions/workflows/build.yml/badge.svg)](https://github.com/jkstack/libagent/actions/workflows/build.yml)
[![license](https://img.shields.io/github/license/jkstack/libagent)](https://opensource.org/licenses/MIT)
[![Go Report Card](https://goreportcard.com/badge/github.com/jkstack/libagent)](https://goreportcard.com/report/github.com/jkstack/libagent)
[![go-mod](https://img.shields.io/github/go-mod/go-version/jkstack/libagent)](https://github.com/jkstack/libagent)

agent封装类库,用于快速开发agent

## 开发方式

请查看[example-agent](https://github.com/jkstack/example-agent#agent%E5%BC%80%E5%8F%91)

## 已支持功能

1. 与agent-server创建websocket连接并进行握手分配agent id
2. 标准化日志输出
- 支持stdout和日志文件双目标输出
- 支持DEBUG、WARNING、INFO、ERROR级别的标准格式日志输出
- 支持日志文件的滚动存储
3. 支持json、yaml或kv格式的配置文件,以下是一个kv格式配置文件示例

id = example-01
server = 127.0.0.1:13081
# log
log.target = stdout
#log.target = stdout,file
#log.dir = ./logs
#log.size = 10M
#log.rotate = 7
# monitor
monitor.enabled = true
monitor.interval = 10s
# limit
limit.cpu_quota = 100
limit.memory_limit = 1G
limit.disk_limit = [{"dev":"8:0","read_bytes":"1M","write_bytes":"1M","read_iops":4000,"write_iops":4000}]
4. 支持通过[cgroups](https://github.com/containerd/cgroups)或[runtime](https://pkg.go.dev/runtime)库进行agent的资源限制,可通过配置文件中的limit相关选项进行配置
5. 支持agent的自监控数据上报,可通过配置文件中的monitor相关选项进行配置
6. 支持断线重连功能
7. 支持系统服务注册