---
# System prepended metadata

title: Gufo Agent Todo

---

# Gufo Agent Todo

## Docs

* [ ] После переименования меток переделать sample output

## Build

* [ ] Docker image on hub.docker.com
* [ ] snap: https://snapcraft.io/docs/creating-a-snap
* [ ] ansible role
* [ ] systemd unit

## Features

* [ ] conf.d/

## Openmetrics endpoint

* [ ] Gzip - waiting for `filter:\:compression::auto() or process manually in endpoint``
* [ ] Auth
    * [ ] Discuss types:
    * [ ] Basic
    * [ ] Bearer
* [ ] Address whitelist
* [ ] Protobuf output
* [ ] Push mode

## TWAMP

* [ ] http://pike.lysator.liu.se/docs/ietf/rfc/68/rfc6802.xml

## Collectors

### Improvements

* [x] modbus_rtu:
    * [ ] setinterface _port_ _mode_
* [ ] procstat: Filter by:
    * [ ] user - relabeling
    * [ ] cgroup - expose
    * [ ] systemd unit - expose
* [ ] exec: Set uid/gid
* [ ] twamp_reflector:
    * [ ] Session identifier label
    * [ ] Detect incoming TTL: socket2 recv_vectorized
    * [ ] Detect incoming ToS and set to reflection
* [ ] redis: TLS
* [ ] redis: # Keyspace metrics
* [ ] redis: # Errorstat metrics

### Must have for NOC

* [ ] mongo
* [ ] haproxy

### Softswitch

* [ ] pacemaker
* [ ] corosync

### Useful

* [ ] snmp
* [ ] ping
* [ ] nginx
    * [ ] nginx_http_api_module
* [ ] iperf
* [ ] clickhouse
* [ ] conntrack
* [ ] nvme - /sys
* [ ] smart - /sys
* [ ] cpufreq - /sys
* [ ] ipp

### Other

* [ ] wmi_query
* [ ] vsphere
* [ ] ipmi

## Proposals

### SNMP Configuration

``` yaml
id: SNMP Metrics
type: snmp
interval: 10
host: 127.0.0.1
port: 161
version: v2c
metrics:
    - oid: 1.3.6.....
      name: if_in_octets
      help: ...
      labels:
          ifindex: 15
    - oid: 1.3.6....
      metric: if_out_octets
      labels:
          ifindex: 15
```

## Questions

* [ ] RPM: arm64/aarch64?
* [ ] procstat: discriminator? - Relabeling

## Todo

* [ ] Procstat:
    * [ ] Описать суммирование pid

## Host id

* [ ] /var/lib/dbus/machine-id
* [ ] /etc/machine-id
* [ ] inodes - ["/bin", "/etc", "/lib", "/root", "/sbin", "/usr", "/var"] st_inode

## Redis

```
# Errorstats
errorstat_ERR:count=1392
errorstat_EXECABORT:count=1
errorstat_NOGROUP:count=1
errorstat_NOPERM:count=900
errorstat_WRONGTYPE:count=207

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=437609,expires=956,avg_ttl=33062274872749
```

## Comparison

|     | Gufo Agent | Telegraf | node_exporter | Grafana Agent | VMAgent |
| --- | --- | --- | --- | --- | --- |
| Language | Rust | Go | Go | Go | Go |

https://grafana.com/docs/grafana-cloud/data-configuration/agent/

## Relabeling improvements

* [ ] VictoriaMetrics extensions:  https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/app/vmagent/README.md#relabeling
    * [ ] replacement: Arbitrary labels via `{{name}}`
    * [ ] if - thinkig
    * [ ] regex as list- thinking

## Discussion

### Marketing and positioning
* [ ] Marketing:
    * [ ] Positioning and comparison: telegraf, node_exporter, Grafana Agent
    * [ ] Build internal competitor's list
    * [ ] Comparison criteria

### Usage

* [ ] Grafana dashboards on a market
* [ ] ansible role

### R&D

* [ ] socket2::MaybeUninitSlice

### TODO

* [ ] regex 1.9