Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/probe-lab/tracecatcher
A utility that listens to pubsub traces produced by Lotus and records them in a Postgresql database.
https://github.com/probe-lab/tracecatcher
Last synced: 9 days ago
JSON representation
A utility that listens to pubsub traces produced by Lotus and records them in a Postgresql database.
- Host: GitHub
- URL: https://github.com/probe-lab/tracecatcher
- Owner: probe-lab
- License: other
- Created: 2023-02-15T11:13:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-26T10:26:38.000Z (4 months ago)
- Last Synced: 2024-08-27T12:59:36.925Z (4 months ago)
- Language: Go
- Homepage:
- Size: 59.6 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# tracecatcher
TraceCatcher is a utility that listens to pubsub traces produced by [Lotus](https://github.com/filecoin-project/lotus) and records them in a Postgresql database.
## Overview
TraceCatcher can be run alongside a Lotus node to capture pubsub traces.
It emulates the ElasticSearch API expected by Lotus and writes each trace to a Postgresql database.
Each event type is recorded in a separate table.The following trace events are supported:
| Event type | Database tables |
| ------------------ | ---------------------------------- |
| publish_message | publish_message_event |
| reject_message | reject_message_event |
| duplicate_message | duplicate_message_event |
| deliver_message | deliver_message_event |
| add_peer | add_peer_event |
| remove_peer | remove_peer_event |
| join | join_event |
| leave | leave_event |
| graft | graft_event |
| prune | prune_event |
| peer_score | peer_score_event, peer_score_topic |The following event types are not yet supported:
- recv_rpv
- send_rpc
- drop_rpc## Getting Started
As of Go 1.19, install the latest tracecatcher executable using:
go install github.com/probe-lab/tracecatcher@latest
This will download and build an ipfsfiled binary in `$GOBIN`
Run the daemon by executing `$GOBIN/tracecatcher` and use command line options to configure its operation:
- `--addr` - the address to listen for traces on (default: ":5151")
- `--db-host` - hostname/address of the database server in which to write traces
- `--db-port` - port number of the database server (default: 5432)
- `--db-name` - name of the database to use
- `--db-password` - password to use when connecting the the database
- `--db-user`- user to use when connecting the the database
- `--db-sslmode` - sslmode to use when connecting the the database (default: "prefer")
- `--batch-size` - set the size of query batches to use when inserting into the database (default: 100)Run `$GOBIN/tracecatcher --help` to see the full list of options.
Each option may also be set using environment variables. These are shown in the help.### Setting up Postgresql
Ensure that TraceCatcher is supplied with a user that has permissions to create tables and indexes.
When TraceCatcher runs it creates the necessary tables for each event type.### Configuring Lotus
Lotus has two configuration settings that control the destination of pubsub traces.
Set `ElasticSearchTracer` to the address of TraceCatcher.
`ElasticSearchIndex` must be set to `traces`.```toml
[Pubsub]
ElasticSearchTracer = "http://localhost:5151/"
ElasticSearchIndex = "traces"
```These settings can also be specified using environment variables:
```
LOTUS_PUBSUB_ELASTICSEARCHTRACER=http://localhost:5151/
LOTUS_PUBSUB_ELASTICSEARCHINDEX=traces
```## License
This software is dual-licensed under Apache 2.0 and MIT terms:
- Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/probe-lab/tracecatcher/blob/master/LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](https://github.com/fprobe-lab/tracecatcher/blob/master/LICENSE-MIT) or http://opensource.org/licenses/MIT)