Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(inputs.mavlink): Add plugin #16221

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
290d0bf
Mavlink test
chrisdalke Nov 21, 2024
8d95aac
Working threaded mavlink plugin
cdalke-havoc Nov 21, 2024
8105d40
fix config
cdalke-havoc Nov 21, 2024
24d47db
Support all client types
chrisdalke Nov 22, 2024
89264c4
wip
chrisdalke Nov 22, 2024
084395f
fix
chrisdalke Nov 22, 2024
12c598f
Fix README
chrisdalke Nov 22, 2024
b8b5030
Fixing README
chrisdalke Nov 22, 2024
cb3b1b6
Fixes
chrisdalke Nov 22, 2024
93899a1
Lint
chrisdalke Nov 22, 2024
bc756ea
Remove unused imports for now
chrisdalke Nov 22, 2024
1151fda
Fix
chrisdalke Nov 22, 2024
a85be7a
Add some tests, split things into util file
cdalke-havoc Nov 23, 2024
4d8de2c
Working tests
cdalke-havoc Nov 23, 2024
18e2180
Lint fixes
cdalke-havoc Nov 23, 2024
24f8c06
More fixes
cdalke-havoc Nov 23, 2024
9c07968
Fix problems
cdalke-havoc Nov 23, 2024
c9f3c80
Fix dependencies
cdalke-havoc Nov 23, 2024
b368ccb
Test with cross platform fork of gomavlib
chrisdalke Nov 24, 2024
c656844
Fix dependency license file
chrisdalke Nov 25, 2024
ba1f7e5
Don't export the metric frame data type
cdalke-havoc Nov 25, 2024
231b70a
Merge remote-tracking branch 'origin/feature/mavlink-input-plugin' in…
cdalke-havoc Nov 25, 2024
7579342
wip
cdalke-havoc Nov 25, 2024
0c6a561
Revert dep changes that had nothing to do with this PR
cdalke-havoc Nov 25, 2024
66adb19
Fix
cdalke-havoc Nov 25, 2024
fbf605c
Merge remote-tracking branch 'upstream/master' into feature/mavlink-i…
cdalke-havoc Nov 25, 2024
56e345d
WIP PR review
cdalke-havoc Nov 29, 2024
2d170ef
Fix README example output, message filtering
cdalke-havoc Nov 29, 2024
3b504e5
Lint fixes
cdalke-havoc Nov 29, 2024
e8db31b
Move client configuration to Init, connection to Start
cdalke-havoc Nov 29, 2024
2c1dfd6
Lint + test fixes
cdalke-havoc Nov 29, 2024
7de58ea
Working on PR feedback, simplify parsing logic
chrisdalke Dec 4, 2024
b95ccda
Improve test coverage, address linting issues
chrisdalke Dec 4, 2024
67d40d7
Update docs
chrisdalke Dec 4, 2024
d009325
Fix host/port parsing
cdalke-havoc Dec 4, 2024
1fb5aa0
Rename `source` tag back to `fcu_url`
cdalke-havoc Dec 5, 2024
1699ec5
Working on PR feedback
chrisdalke Dec 15, 2024
64e30ac
Lint
chrisdalke Dec 15, 2024
9a80fe5
Merge commit '516b8cfbd16dc1eade0034fe873bb23a242bee04' into feature/…
chrisdalke Dec 15, 2024
2647227
Working on PR feedback
chrisdalke Dec 15, 2024
0e42711
Move URL parsing out of utils into main file, fix linting issues
chrisdalke Dec 15, 2024
70d9732
Lint
chrisdalke Dec 15, 2024
89a9649
Swap forked gomavlib for upstream
chrisdalke Dec 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/LICENSE_OF_DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ following works:
- github.com/awslabs/kinesis-aggregation/go [Apache License 2.0](https://github.com/awslabs/kinesis-aggregation/blob/master/LICENSE.txt)
- github.com/benbjohnson/clock [MIT License](https://github.com/benbjohnson/clock/blob/master/LICENSE)
- github.com/beorn7/perks [MIT License](https://github.com/beorn7/perks/blob/master/LICENSE)
- github.com/bluenviron/gomavlib [MIT License](https://github.com/bluenviron/gomavlib/blob/main/LICENSE)
- github.com/blues/jsonata-go [MIT License](https://github.com/blues/jsonata-go/blob/main/LICENSE)
- github.com/bmatcuk/doublestar [MIT License](https://github.com/bmatcuk/doublestar/blob/master/LICENSE)
- github.com/boschrexroth/ctrlx-datalayer-golang [MIT License](https://github.com/boschrexroth/ctrlx-datalayer-golang/blob/main/LICENSE)
Expand All @@ -116,6 +117,7 @@ following works:
- github.com/couchbase/goutils [Apache License 2.0](https://github.com/couchbase/goutils/blob/master/LICENSE.md)
- github.com/cpuguy83/dockercfg [MIT License](https://github.com/cpuguy83/dockercfg/blob/main/LICENSE)
- github.com/cpuguy83/go-md2man [MIT License](https://github.com/cpuguy83/go-md2man/blob/master/LICENSE.md)
- github.com/creack/goselect [MIT License](https://github.com/creack/goselect/blob/master/LICENSE)
- github.com/danieljoos/wincred [MIT License](https://github.com/danieljoos/wincred/blob/master/LICENSE)
- github.com/datadope-io/go-zabbix [MIT License](https://github.com/datadope-io/go-zabbix/blob/master/LICENSE)
- github.com/davecgh/go-spew [ISC License](https://github.com/davecgh/go-spew/blob/master/LICENSE)
Expand Down Expand Up @@ -394,6 +396,7 @@ following works:
- github.com/yuin/gopher-lua [MIT License](https://github.com/yuin/gopher-lua/blob/master/LICENSE)
- github.com/yusufpapurcu/wmi [MIT License](https://github.com/yusufpapurcu/wmi/blob/master/LICENSE)
- github.com/zeebo/xxh3 [BSD 2-Clause "Simplified" License](https://github.com/zeebo/xxh3/blob/master/LICENSE)
- go.bug.st/serial [BSD 3-Clause License](https://github.com/bugst/go-serial/blob/master/LICENSE)
- go.mongodb.org/mongo-driver [Apache License 2.0](https://github.com/mongodb/mongo-go-driver/blob/master/LICENSE)
- go.opencensus.io [Apache License 2.0](https://github.com/census-instrumentation/opencensus-go/blob/master/LICENSE)
- go.opentelemetry.io/collector/consumer [Apache License 2.0](https://github.com/open-telemetry/opentelemetry-collector/blob/main/LICENSE)
Expand Down
7 changes: 5 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.27.4
github.com/aws/smithy-go v1.22.1
github.com/benbjohnson/clock v1.3.5
github.com/bluenviron/gomavlib/v3 v3.1.0
github.com/blues/jsonata-go v1.5.4
github.com/bmatcuk/doublestar/v3 v3.0.0
github.com/boschrexroth/ctrlx-datalayer-golang v1.3.1
Expand Down Expand Up @@ -186,7 +187,7 @@ require (
github.com/snowflakedb/gosnowflake v1.11.2
github.com/srebhan/cborquery v1.0.1
github.com/srebhan/protobufquery v1.0.1
github.com/stretchr/testify v1.9.0
github.com/stretchr/testify v1.10.0
github.com/tbrandon/mbserver v0.0.0-20170611213546-993e1772cc62
github.com/testcontainers/testcontainers-go v0.34.0
github.com/testcontainers/testcontainers-go/modules/kafka v0.34.0
Expand Down Expand Up @@ -314,6 +315,7 @@ require (
github.com/couchbase/goutils v0.1.0 // indirect
github.com/cpuguy83/dockercfg v0.3.2 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
github.com/creack/goselect v0.1.2 // indirect
github.com/danieljoos/wincred v1.2.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/devigned/tab v0.1.1 // indirect
Expand Down Expand Up @@ -445,7 +447,7 @@ require (
github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986 // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
github.com/pion/logging v0.2.2 // indirect
github.com/pion/transport/v2 v2.2.4 // indirect
github.com/pion/transport/v2 v2.2.10 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/sftp v1.13.6 // indirect
Expand Down Expand Up @@ -493,6 +495,7 @@ require (
github.com/zitadel/logging v0.6.1 // indirect
github.com/zitadel/oidc/v3 v3.30.0 // indirect
github.com/zitadel/schema v1.3.0 // indirect
go.bug.st/serial v1.6.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.4 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/collector/consumer v0.101.0 // indirect
Expand Down
17 changes: 15 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
bou.ke/monkey v1.0.2 h1:kWcnsrCNUatbxncxR/ThdYqbytgOIArtYWqcQLQzKLI=
bou.ke/monkey v1.0.2/go.mod h1:OqickVX3tNx6t33n1xvtTtu85YN5s6cKwVug+oHMaIA=
cel.dev/expr v0.16.1 h1:NR0+oFYzR1CqLFhTAqg3ql59G9VfN8fKq1TCHJ6gq1g=
cel.dev/expr v0.16.1/go.mod h1:AsGA5zb3WruAEQeQng1RZdGEXmBj0jvMWh6l5SnNuC8=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
Expand Down Expand Up @@ -971,6 +973,8 @@ github.com/bitly/go-hostpool v0.1.0/go.mod h1:4gOCgp6+NZnVqlKyZ/iBZFTAJKembaVENU
github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk=
github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/bluenviron/gomavlib/v3 v3.1.0 h1:+CDYAkn2FZQZijYwaHS2pmoVu5ZsfGwWSV56CjkxzfE=
github.com/bluenviron/gomavlib/v3 v3.1.0/go.mod h1:6iGC6AvAFl7OcDQHhyNYq8uMrqcRYW0ksdc/a0/29UM=
github.com/blues/jsonata-go v1.5.4 h1:XCsXaVVMrt4lcpKeJw6mNJHqQpWU751cnHdCFUq3xd8=
github.com/blues/jsonata-go v1.5.4/go.mod h1:uns2jymDrnI7y+UFYCqsRTEiAH22GyHnNXrkupAVFWI=
github.com/bmatcuk/doublestar/v3 v3.0.0 h1:TQtVPlDnAYwcrVNB2JiGuMc++H5qzWZd9PhkNo5WyHI=
Expand Down Expand Up @@ -1088,6 +1092,8 @@ github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHf
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc=
github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=
github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
Expand Down Expand Up @@ -2093,8 +2099,11 @@ github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk=
github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE=
github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
github.com/pion/transport/v2 v2.2.4 h1:41JJK6DZQYSeVLxILA2+F4ZkKb4Xd/tFJZRFZQ9QAlo=
github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q=
github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E=
github.com/pion/transport/v3 v3.0.6 h1:k1mQU06bmmX143qSWgXFqSH1KUJceQvIUuVH/K5ELWw=
github.com/pion/transport/v3 v3.0.6/go.mod h1:HvJr2N/JwNJAfipsRleqwFoR3t/pWyHeZUs89v3+t5s=
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
Expand Down Expand Up @@ -2313,8 +2322,9 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7 h1:Jtcrb09q0AVWe3BGe8qtuuGxNSHWGkTWr43kHTJ+CpA=
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7/go.mod h1:suDIky6yrK07NnaBadCB4sS0CqFOvUK91lH7CR+JlDA=
Expand Down Expand Up @@ -2385,6 +2395,7 @@ github.com/vmware/govmomi v0.45.1 h1:pmMmSUNIw/kePaCRFaUOpDh7IxDfhDi9M4Qh+DRlBV4
github.com/vmware/govmomi v0.45.1/go.mod h1:uoLVU9zlXC4p4GmLVG+ZJmBC0Gn3Q7mytOJvi39OhxA=
github.com/wavefronthq/wavefront-sdk-go v0.15.0 h1:po9E3vh/0y7kOx8D9EtFp7kbSLLLKbmu/w/s1xGJAQU=
github.com/wavefronthq/wavefront-sdk-go v0.15.0/go.mod h1:V72c8e+bXuLK8HpA6ioW0ll5mK9IPD+4IHNNDY75ksA=
github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
Expand Down Expand Up @@ -2438,6 +2449,8 @@ github.com/zitadel/oidc/v3 v3.30.0 h1:1IuZlK+X+JLExEA2PYgRlVvWHBhz/cMwT7VL/YrQab
github.com/zitadel/oidc/v3 v3.30.0/go.mod h1:+I5BgvGO5C2ZJrQRjV34EjkyA7P3GXyYGZgXI8Sdw18=
github.com/zitadel/schema v1.3.0 h1:kQ9W9tvIwZICCKWcMvCEweXET1OcOyGEuFbHs4o5kg0=
github.com/zitadel/schema v1.3.0/go.mod h1:NptN6mkBDFvERUCvZHlvWmmME+gmZ44xzwRXwhzsbtc=
go.bug.st/serial v1.6.2 h1:kn9LRX3sdm+WxWKufMlIRndwGfPWsH1/9lCWXQCasq8=
go.bug.st/serial v1.6.2/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE=
go.einride.tech/aip v0.68.0 h1:4seM66oLzTpz50u4K1zlJyOXQ3tCzcJN7I22tKkjipw=
go.einride.tech/aip v0.68.0/go.mod h1:7y9FF8VtPWqpxuAxl0KQWqaULxW4zFIesD6zF5RIHHg=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
Expand Down
5 changes: 5 additions & 0 deletions plugins/inputs/all/mavlink.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
//go:build !custom || inputs || inputs.mavlink

package all

import _ "github.com/influxdata/telegraf/plugins/inputs/mavlink" // register plugin
107 changes: 107 additions & 0 deletions plugins/inputs/mavlink/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# MavLink Input Plugin

This plugin collects metrics from [MavLink][mavlink]-compatible flight
controllers such as [ArduPilot][ardupilot] or [PX4][px4] to live ingest
flight metrics from unmanned systems (drones, planes, boats, etc.)
Currently the ArduPilot-specific Mavlink dialect is used, check the
[Mavlink documentation][mavlink_docs] for more details and the various
messages available.

> [!WARNING]
> This plugin potentially generates a large amount of data! Please use metric
> filters to limit the amount of metrics produced!

⭐ Telegraf v1.34.0
🏷️ iot
💻 all

[mavlink]: https://mavlink.io/
[ardupilot]: https://ardupilot.org/
[px4]: https://px4.io/
[mavlink_docs]: https://mavlink.io/en/messages/ardupilotmega.html

## Global configuration options <!-- @/docs/includes/plugin_config.md -->

In addition to the plugin-specific configuration settings, plugins support
additional global and plugin configuration settings. These settings are used to
modify metrics, tags, and field or create aliases and configure ordering, etc.
See the [CONFIGURATION.md][CONFIGURATION.md] for more details.

[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins

## Configuration

```toml @sample.conf
# Read metrics from a Mavlink flight controller.
[[inputs.mavlink]]
## Flight controller URL supporting serial port, UDP and TCP connections.
## The modes are documented at
## https://mavsdk.mavlink.io/v1.4/en/cpp/guide/connections.html.
##
## Examples:
## - Serial port: serial:///dev/ttyACM0:57600
## - TCP client: tcp://192.168.1.12:14550
## - UDP client: udp://192.168.1.12:14550
## - UDP server: udp://:14540
url = "udp://:14540"

## Filter to specific messages. Only the messages in this list will be parsed.
## If blank or unset, all messages will be accepted. Glob syntax is accepted.
## Each message in this list should be lowercase camel_case, with "message_"
## prefix removed, eg: "global_position_int", "attitude"
# filter = []

## Mavlink system ID for Telegraf
## Only used if the mavlink plugin is sending messages, eg.
## when `stream_request_enable` is enabled (see below.)
system_id = 254

## Determines whether the plugin sends requests to stream telemetry,
## and if enabled, the requested frequency of telemetry in Hz.
## This setting should be disabled if your software controls rates using
## REQUEST_DATA_STREAM or MAV_CMD_SET_MESSAGE_INTERVAL
## (See https://mavlink.io/en/mavgen_python/howto_requestmessages.html#how-to-request--stream-messages)
stream_request_enable = true
stream_request_frequency = 4
```

## Metrics

Each supported Mavlink message translates to one metric group, and fields
on the Mavlink message are converted to fields in telegraf.

The name of the Mavlink message is translated into lowercase and any
leading text `message_` is dropped.

For example, [MESSAGE_ATTITUDE](https://mavlink.io/en/messages/common.html)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For example, [MESSAGE_ATTITUDE](https://mavlink.io/en/messages/common.html)
For example, message [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)

will become an `attitude` metric, with all fields copied from its Mavlink
message definition.

## Example Output

```text
system_time,source=udp://:5760,sys_id=1 time_unix_usec=1732901334516981i,time_boot_ms=1731552i 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
system_time,source=udp://:5760,sys_id=1 time_unix_usec=1732901334516981i,time_boot_ms=1731552i 0
system_time,source=udp://:5760,sys_id=1 time_unix_usec=1732901334516981i,time_boot_ms=1731552i

Including no timestamp is better than including a wrong one.

simstate,source=udp://:5760,sys_id=1 roll=0,pitch=0,yaw=-1.2217304706573486,xacc=0,yacc=0,zacc=-9.806650161743164,xgyro=0,ygyro=0,zgyro=0,lat=450469223i,lng=-834024728i 0
ekf_status_report,source=udp://:5760,sys_id=1 velocity_variance=0.006436665542423725,pos_horiz_variance=0.006062425673007965,pos_vert_variance=0.0029854460153728724,compass_variance=0.010930062271654606,terrain_alt_variance=0,airspeed_variance=0 0
local_position_ned,source=udp://:5760,sys_id=1 time_boot_ms=1731552i,x=-0.010437906719744205,y=-0.02162001095712185,z=-0.0037050051614642143,vx=-0.011906237341463566,vy=-0.02467793971300125,vz=0.012739507481455803 0
vibration,source=udp://:5760,sys_id=1 time_usec=1731552102i,vibration_x=0.0028534166049212217,vibration_y=0.002792230574414134,vibration_z=0.0028329004999250174,clipping_0=0i,clipping_1=0i,clipping_2=0i 0
battery_status,source=udp://:5760,sys_id=1 id=0i,temperature=32767i,current_battery=0i,current_consumed=0i,energy_consumed=0i,battery_remaining=100i,time_remaining=0i 0
statustext,source=udp://:5760,sys_id=1 text="Field Elevation Set: 0m",id=0i,chunk_seq=0i 0
ahrs,source=udp://:5760,sys_id=1 omegaix=-0.0012698185164481401,omegaiy=-0.0011798597406595945,omegaiz=-0.0017210562946274877,accel_weight=0,renorm_val=0,error_rp=0.002372326795011759,error_yaw=0.0014012008905410767 0
ahrs2,source=udp://:5760,sys_id=1 roll=-0.0015893152449280024,pitch=-0.0018129277741536498,yaw=-1.2297048568725586,altitude=0.22999998927116394,lat=450469223i,lng=-834024728i 0
attitude,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,roll=-0.0011288427049294114,pitch=-0.0013485358795151114,yaw=-1.2430261373519897,rollspeed=-0.00023304438218474388,pitchspeed=-0.00023194786626845598,yawspeed=-0.0008081073756329715 0
global_position_int,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,lat=450469223i,lon=-834024730i,alt=0i,relative_alt=-115i,vx=-1i,vy=-2i,vz=1i,hdg=28878i 0
vfr_hud,source=udp://:5760,sys_id=1 airspeed=0,groundspeed=0.027561495080590248,heading=288i,throttle=0i,alt=0,climb=-0.011526756919920444 0
sys_status,source=udp://:5760,sys_id=1 load=0i,voltage_battery=12600i,current_battery=0i,battery_remaining=100i,drop_rate_comm=0i,errors_comm=0i,errors_count1=0i,errors_count2=0i,errors_count3=0i,errors_count4=0i 0
power_status,source=udp://:5760,sys_id=1 vcc=5000i,vservo=0i 0
meminfo,source=udp://:5760,sys_id=1 brkval=0i,freemem=65535i,freemem32=131072i 0
mission_current,source=udp://:5760,sys_id=1 seq=0i,total=0i,mission_mode=0i,mission_id=0i,fence_id=0i,rally_points_id=0i 0
servo_output_raw,source=udp://:5760,sys_id=1 time_usec=1731811998i,port=0i,servo1_raw=1500i,servo2_raw=0i,servo3_raw=1500i,servo4_raw=0i,servo5_raw=0i,servo6_raw=0i,servo7_raw=0i,servo8_raw=0i,servo9_raw=0i,servo10_raw=0i,servo11_raw=0i,servo12_raw=0i,servo13_raw=0i,servo14_raw=0i,servo15_raw=0i,servo16_raw=0i 0
rc_channels,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,chancount=8i,chan1_raw=1500i,chan2_raw=1500i,chan3_raw=1500i,chan4_raw=1500i,chan5_raw=1800i,chan6_raw=1000i,chan7_raw=1000i,chan8_raw=1800i,chan9_raw=0i,chan10_raw=0i,chan11_raw=0i,chan12_raw=0i,chan13_raw=0i,chan14_raw=0i,chan15_raw=0i,chan16_raw=0i,chan17_raw=0i,chan18_raw=0i,rssi=255i 0
raw_imu,source=udp://:5760,sys_id=1 time_usec=1731811998i,xacc=0i,yacc=0i,zacc=-1001i,xgyro=1i,ygyro=0i,zgyro=0i,xmag=84i,ymag=159i,zmag=508i,id=0i,temperature=4493i 0
scaled_imu2,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,xacc=0i,yacc=0i,zacc=-1001i,xgyro=1i,ygyro=0i,zgyro=1i,xmag=84i,ymag=159i,zmag=508i,temperature=4493i 0
scaled_imu3,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,xacc=0i,yacc=0i,zacc=0i,xgyro=0i,ygyro=0i,zgyro=0i,xmag=84i,ymag=159i,zmag=508i,temperature=0i 0
scaled_pressure,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,press_abs=1013.2387084960938,press_diff=0,temperature=3499i,temperature_press_diff=0i 0
scaled_pressure2,source=udp://:5760,sys_id=1 time_boot_ms=1731811i,press_abs=1013.2310791015625,press_diff=0,temperature=3499i,temperature_press_diff=0i 0
gps_raw_int,source=udp://:5760,sys_id=1 time_usec=1731635000i,lat=450469223i,lon=-834024728i,alt=0i,eph=121i,epv=200i,vel=0i,cog=0i,satellites_visible=10i,alt_ellipsoid=0i,hacc=300i,vacc=300i,vel_acc=40i,hdg_acc=0i,yaw=0i 0
```
Loading
Loading