{"id":15137058,"url":"https://github.com/brytelands/sologger-geyser-plugin","last_synced_at":"2026-02-19T19:31:47.021Z","repository":{"id":244107954,"uuid":"809113487","full_name":"brytelands/sologger-geyser-plugin","owner":"brytelands","description":"A geyser plugin for Sologger","archived":false,"fork":false,"pushed_at":"2024-10-14T04:16:21.000Z","size":1339,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T11:55:38.990Z","etag":null,"topics":["geyser-plugin","logging","logstash","opentelemetry","solana","solana-validator","structured-logging"],"latest_commit_sha":null,"homepage":"https://github.com/brytelands/sologger-geyser-plugin","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brytelands.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-01T18:12:30.000Z","updated_at":"2025-03-24T11:35:04.000Z","dependencies_parsed_at":"2025-02-08T14:42:25.338Z","dependency_job_id":null,"html_url":"https://github.com/brytelands/sologger-geyser-plugin","commit_stats":null,"previous_names":["brytelands/sologger-geyser-plugin"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/brytelands/sologger-geyser-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brytelands%2Fsologger-geyser-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brytelands%2Fsologger-geyser-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brytelands%2Fsologger-geyser-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brytelands%2Fsologger-geyser-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brytelands","download_url":"https://codeload.github.com/brytelands/sologger-geyser-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brytelands%2Fsologger-geyser-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29628778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geyser-plugin","logging","logstash","opentelemetry","solana","solana-validator","structured-logging"],"created_at":"2024-09-26T06:43:13.040Z","updated_at":"2026-02-19T19:31:47.001Z","avatar_url":"https://github.com/brytelands.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Rust](https://github.com/brytelands/sologger-geyser-plugin/actions/workflows/rust.yml/badge.svg)](https://github.com/brytelands/sologger-geyser-plugin/actions/workflows/rust.yml)\n\n# sologger-geyser-plugin\n\nConfigurable Solana Geyser plugin that uses [Sologger](https://github.com/brytelands/sologger) to structure Solana validator logs and send them to either Logstash or an OpenTelemetry collector.\nSologger parses raw logs ingested by the geyser plugin into structured logs and transports Solana logs to either a LogStash or OpenTelemetry endpoint via TCP. This helps improve the observability of your programs running on chain.\n\n### Quick Start\n\nIf you just want to run a Solana test validator with the Sologger Geyser plugin, then you can use one of the following docker compose files to get up and running quickly.\n\n- [sologger with Parseable](./docker-examples/docker-parseable/) This is the easiest way to get up and running with Sologger. If you want to monitor specific programs, all you need to do is update the program IDs in the sologger-config.json file.\n- [sologger with Signoz](./docker-examples/docker-signoz/) This is an example using OpenTelemetry. It's a bit more involved and takes a little bit of time to startup Signoz. If you want to monitor specific programs, all you need to do is update the program IDs in the sologger-config.json file.\n\n\n**Building the source**\nThere are two main features that can be enabled when building the plugin binaries. The first is the Logstash feature which will enable the Logstash transport. The second is the OpenTelemetry feature which will enable the OpenTelemetry transport. Technically you can build with both features enabled, but this is not recommended. If you need both LogStash and OTel support, the recommended approach is to build two binaries with each feature enabled, and run each separately.\n\n- Logstash: `enable_logstash`\n- OpenTelemetry: `enable_otel`\n\n```shell\n#If you want to build the binaries with Logstash support, then run the following command:\ncargo build --features 'enable_logstash'\n\n#If you want to build the binaries with OpenTelemetry support, then run the following command:\ncargo build --features 'enable_otel'\n```\n\n**Building the docker image**\n\nThese images are basically just the Solana CLI that starts a test-validator with the Sologger Geyser Plugin installed.\n\n```shell\n#If you want to build the image with Logstash support, then run the following command:\ndocker build -f 'Dockerfile-logstash' --tag sologger-logstash-geyser-plugin .\n\n#If you want to build the image with OpenTelemetry support, then run the following command:\ndocker build --file 'Dockerfile-otel' --tag sologger-otel-geyser-plugin .\n```\n\n### Configure\n\nThere are two configuration files that you will need to configure to get up and running with Sologger.\nThe first is the sologger-config file. This file is used to configure the sologger binary.\nThe second is the log4rs-config file. This file is used to configure the log4rs logger OR the opentelemetry-config file. This file is used to configure the logstash binary.\n\nBy default, sologger will look for a config file named `sologger-config.json` in ./config/local/ directory. You can override this by setting the `SOLOGGER_APP_CONFIG_LOCATION` environment variable to the path of your config file. For example:\n\nHere is an example sologger-config.json. See [sologger_config.rs](src/sologger_config.rs) for documentation specific to each field.\n```json\n{\n    \"log4rsConfigLocation\": \"../config/local/log4rs-config.yml\",\n    \"opentelemetryConfigLocation\": \"../config/local/opentelemetry-config.json\",\n    \"rpcUrl\": \"wss://api.devnet.solana.com\",\n    \"programsSelector\" : {\n        \"programs\" : [\"BPFLoaderUpgradeab1e11111111111111111111111\", \"Ed25519SigVerify111111111111111111111111111\", \"KeccakSecp256k11111111111111111111111111111\"]\n    },\n    \"accountDataNotificationsEnabled\": false,\n    \"transactionNotificationsEnabled\": true,\n    \"logProcessorWorkerThreadCount\": 2\n}\n```\n\nFor log4rs configurations please see: [log4rs](https://github.com/estk/log4rs)\n\n\n### Run\n\nYou can also take a look at the run scripts in [scripts](./scripts)\n\n```shell\nsolana-test-validator --geyser-plugin-config ../config/sologger-geyser-plugin-config.json\n\n#Or if you want to specify a location of the sologger-config.json\nSOLOGGER_APP_CONFIG_LOCATION=./config/sologger-config.json solana-test-validator --geyser-plugin-config ../config/sologger-geyser-plugin-config.json\n```\n\nOr\n\n```shell\n#If you just want to run the docker image\nsudo docker run --name solana-test-validator-sologger-otel -p 1024:1024 -p 9900:9900 -p 8900:8900 -p 8899:8899 sologger-otel-geyser-plugin\n```\n\nOr\n\nStart up the Parseable stack using docker-compose\n\n```shell\ndocker-compose -f docker-examples/docker-parseable/docker-compose.yml up\n```\n\nYou can deploy your program and see the logs here\n\n- url: http://localhost:8000\n- user: admin\n- password: admin","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrytelands%2Fsologger-geyser-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrytelands%2Fsologger-geyser-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrytelands%2Fsologger-geyser-plugin/lists"}