codex-team / hawk.collector Goto Github PK
View Code? Open in Web Editor NEWHigh-performance messages collector for the Hawk project
License: GNU General Public License v3.0
High-performance messages collector for the Hawk project
License: GNU General Public License v3.0
Create a whitelist of possible queue names.
Load all parameters from config.json
Add config generation wizard if not found.
gometalinter
is deprecated. Update to GolangCI-lint
Build scripts to setup
Logs should include message Banned projects list have been updated. Number of projects size changed 123 → 1245
Now it just panics
2021/04/17 13:35:37 Failed to connect to RabbitMQ (amqp://guest:guest@rabbitmq:5672/): dial tcp: lookup rabbitmq: no such host
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x13523bb]
Check how it is resolved in other projects
Add testings docs
Add integration testing guide
Add samples and typical commands
Build script and define project topology in a config.
Provide auto-deploy the topology in docker
https://www.rabbitmq.com/backup.html#rabbitmq-definitions
https://stackoverflow.com/questions/40280293/defining-a-queue-with-a-config-file-in-rabbitmq
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x737c96]
goroutine 135 [running]:
github.com/codex-team/hawk%2ego.(*Catcher).Catch(0x0, 0xabd040, 0xe61d20, 0xc000132cb0, 0x19)
/go/pkg/mod/github.com/codex-team/[email protected]/catch.go:89 +0xe6
github.com/codex-team/hawk.collector/pkg/hawk.Catch(0xabd040, 0xe61d20)
/build/pkg/hawk/main.go:48 +0x4e
github.com/codex-team/hawk.collector/pkg/server.(*Server).handler.func1(0xc00010fc70, 0xc000183200)
/build/pkg/server/server.go:88 +0x131
panic(0x960d00, 0xe61d20)
/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/codex-team/hawk%2ego.(*Catcher).Catch(0x0, 0xabc920, 0xc00004fc10, 0xc000369b68, 0x40c7a8)
/go/pkg/mod/github.com/codex-team/[email protected]/catch.go:89 +0xe6
github.com/codex-team/hawk.collector/pkg/hawk.Catch(0xabc920, 0xc00004fc10)
/build/pkg/hawk/main.go:48 +0x4e
github.com/codex-team/hawk.collector/pkg/server/errorshandler.(*Handler).HandleWebsocket(0xc000081728, 0xc000183200)
/build/pkg/server/errorshandler/handler_websocket.go:46 +0xa6
github.com/codex-team/hawk.collector/pkg/server.(*Server).handler(0xc000081680, 0xc000183200)
/build/pkg/server/server.go:97 +0x1f1
github.com/valyala/fasthttp.(*Server).serveConn(0xc0000fa200, 0xacbd40, 0xc00000e1b0, 0x0, 0x0)
/go/pkg/mod/github.com/valyala/[email protected]/server.go:1926 +0x878
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0001275e0, 0xc000227820)
/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:212 +0xc0
github.com/valyala/fasthttp.(*workerPool).getCh.func1(0xc0001275e0, 0xc000227820, 0x91c1a0, 0xc000227820)
/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:184 +0x35
created by github.com/valyala/fasthttp.(*workerPool).getCh
/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:183 +0x10a
The idea is to provide token for user subscription.
He can use this token to connect to the pub-sub server (centrifugo) and get information about processings statuses or other statistics
Input
{ "token": "eyJhbGci<...>iJN0dg", "catcherType": "errors/python" }
Result
{ "error": true, "message": "Server error", "status": 500 }
Check if connection should check failovers
Check reconnect during work feature.
Add proper logging events for connection issues.
You need to create a new route /release
that will accept the release data and will include the source maps.
https://docs.codex.so/suspected-commits#izmeneniya-v-kollektore
Compare if there can be a significant difference in performance when use multiprocessing and different number of connections.
Provide variants of runtime monitoring
Review and use new features (especially Error Inspection)
Check if it is possible to remove vendor files and add govendor fetch to the deploy scripts and docker
Parse JWT and check validity of digital signature
Compare JSON marshalling and unmarshalling speed during highload for EasyJSON and standard JSON in golang.
If easyJSON is better – generate helpers
Benchmark json-iterator/go
Decide if this is stable enough:
https://github.com/golang/go/wiki/Modules
https://go.googlesource.com/proposal/+/master/design/24301-versioned-go.md
Add the ability to receive array of events
Commits sent during release must follow the structure (or be omitted):
– hash
– title
– author
– date
Support error messages delivery through websockets
Add travis and write integration tests
Config must be human-readable:
{
"broker_url": "amqp://guest:guest@localhost:5672/",
"exchange_name": "errors",
"server_host": "localhost",
"server_port": 3000,
"retry_number": 5,
"retry_interval": 3
}
The use of standard MarshalIndent feature would be appropriate.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.