ez_logs_agent 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +80 -0
- data/LICENSE.txt +21 -0
- data/README.md +1023 -0
- data/lib/ez_logs_agent/actor.rb +57 -0
- data/lib/ez_logs_agent/actor_validator.rb +58 -0
- data/lib/ez_logs_agent/buffer.rb +83 -0
- data/lib/ez_logs_agent/capturers/active_job_capturer.rb +300 -0
- data/lib/ez_logs_agent/capturers/database_capturer.rb +467 -0
- data/lib/ez_logs_agent/capturers/job_capturer.rb +261 -0
- data/lib/ez_logs_agent/configuration.rb +184 -0
- data/lib/ez_logs_agent/configuration_validator.rb +139 -0
- data/lib/ez_logs_agent/correlation.rb +40 -0
- data/lib/ez_logs_agent/event_builder.rb +281 -0
- data/lib/ez_logs_agent/flush_scheduler.rb +99 -0
- data/lib/ez_logs_agent/logger.rb +62 -0
- data/lib/ez_logs_agent/middleware/http_request.rb +992 -0
- data/lib/ez_logs_agent/railtie.rb +353 -0
- data/lib/ez_logs_agent/resource_extractor.rb +172 -0
- data/lib/ez_logs_agent/retry_sender.rb +120 -0
- data/lib/ez_logs_agent/sanitizer.rb +150 -0
- data/lib/ez_logs_agent/transport.rb +91 -0
- data/lib/ez_logs_agent/user_agent_detector.rb +51 -0
- data/lib/ez_logs_agent/version.rb +5 -0
- data/lib/ez_logs_agent.rb +44 -0
- data/lib/generators/ez_logs_agent/install/install_generator.rb +94 -0
- data/lib/generators/ez_logs_agent/install/templates/ez_logs_agent.rb.tt +128 -0
- data/lib/tasks/ez_logs_agent.rake +110 -0
- metadata +172 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 3d6d21c6716856cbf2ff0bf1763565fa2f2aef94802ff9ada561fbba3839cdcb
|
|
4
|
+
data.tar.gz: 3b0555da8da3a83642314babea1671846ae958f2b20ccafbf0959d2ca0d0e5f6
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: ee5df5ac6dac348c9a19ef586d5539b0589a5f22ec9be5f94ddbd2025c733939b1dcd506dd9abd1af939e80d97840b0cc089e084d8f607a1b9687084f4c213c3
|
|
7
|
+
data.tar.gz: 510b88d85e9a8c8e62360cb219e642b24aa60c77799eccd0c9df64ae47bdfcfd5ff65d54b8b3e25b2f42ae8bc300bda4d1ff1086d1ca7b053a24b69d59667088
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.1.3] — 2026-05-17
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Include `lib/tasks/ez_logs_agent.rake` in the published gem. 0.1.2's
|
|
9
|
+
gemspec used `lib/**/*.{rb,tt}` which didn't match `.rake` files; the
|
|
10
|
+
railtie's `rake_tasks do; load 'tasks/...'; end` then raised
|
|
11
|
+
`LoadError` on boot, breaking `assets:precompile` in any host app's
|
|
12
|
+
Docker build. 0.1.2 yanked.
|
|
13
|
+
|
|
14
|
+
### Note
|
|
15
|
+
- 0.1.0, 0.1.1, 0.1.2 are all yanked. Use 0.1.3 or later.
|
|
16
|
+
|
|
17
|
+
## [0.1.2] — 2026-05-16
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- Republish with correct file modes (0644) so the gem loads in
|
|
21
|
+
privilege-dropping containers. 0.1.0 and 0.1.1 were built under a
|
|
22
|
+
tight umask and shipped lib files at 0600, causing `LoadError` in
|
|
23
|
+
any image that drops to a non-root user. Both prior versions yanked.
|
|
24
|
+
|
|
25
|
+
### Note
|
|
26
|
+
- 0.1.1 is yanked. Use 0.1.2 or later.
|
|
27
|
+
|
|
28
|
+
## [0.1.0] — 2025-12-18
|
|
29
|
+
|
|
30
|
+
Initial release.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
**Event Capture:**
|
|
35
|
+
- HTTP request capture via Rack middleware
|
|
36
|
+
- GraphQL metadata enrichment (operation name, operation type)
|
|
37
|
+
- Sidekiq job capture via client and server middleware
|
|
38
|
+
- ActiveJob capture with Sidekiq adapter detection
|
|
39
|
+
- ActiveRecord lifecycle capture (create, update, destroy)
|
|
40
|
+
|
|
41
|
+
**Correlation:**
|
|
42
|
+
- Automatic correlation ID generation for HTTP requests
|
|
43
|
+
- Correlation propagation from HTTP to background jobs
|
|
44
|
+
- Correlation propagation from job to nested jobs
|
|
45
|
+
- Cross-technology correlation (Sidekiq ↔ ActiveJob)
|
|
46
|
+
|
|
47
|
+
**Transport:**
|
|
48
|
+
- Thread-safe in-memory buffer with overflow protection
|
|
49
|
+
- HTTP transport with configurable server URL
|
|
50
|
+
- Retry logic with exponential backoff
|
|
51
|
+
- Background flush scheduler (configurable interval)
|
|
52
|
+
|
|
53
|
+
**Rails Integration:**
|
|
54
|
+
- Zero-config setup via Railtie
|
|
55
|
+
- Auto-registration of HTTP middleware
|
|
56
|
+
- Auto-registration of Sidekiq middleware
|
|
57
|
+
- Auto-installation of ActiveJob hooks
|
|
58
|
+
- Auto-installation of database callbacks
|
|
59
|
+
- Graceful shutdown with final flush
|
|
60
|
+
- Rails generator for initializer (`rails generate ez_logs_agent:install`)
|
|
61
|
+
|
|
62
|
+
**Configuration:**
|
|
63
|
+
- `server_url` — EzLogs Server URL (required)
|
|
64
|
+
- `project_token` — Authentication token
|
|
65
|
+
- `capture_http` — Enable/disable HTTP capture
|
|
66
|
+
- `capture_jobs` — Enable/disable job capture
|
|
67
|
+
- `capture_database` — Enable/disable database capture
|
|
68
|
+
- `excluded_paths` — Paths to skip in HTTP capture
|
|
69
|
+
- `buffer_size` — Maximum events in memory
|
|
70
|
+
- `retry_attempts` — Retry count for failed sends
|
|
71
|
+
- `send_interval` — Seconds between flushes
|
|
72
|
+
- `log_level` — Logging verbosity
|
|
73
|
+
|
|
74
|
+
### Notes
|
|
75
|
+
|
|
76
|
+
- Best-effort delivery (events may be lost if server is unreachable)
|
|
77
|
+
- Correlation is best-effort (missing correlation IDs are acceptable)
|
|
78
|
+
- Not intended as an audit log (use PaperTrail or Audited for compliance)
|
|
79
|
+
- Agent never raises exceptions to host application
|
|
80
|
+
- Agent never blocks requests or job execution
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 dezsirazvan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|