lukaszraczylo
|
c2c75d69c0
|
perf+coverage: optimisation pass + coverage push to ≥70%
Performance / resource usage:
- circuit_breaker_metrics: fix data race on failCounters map (RWMutex + double-checked locking)
- server.go: drop user_id and op_name metric labels (Prometheus cardinality bound); de-duplicate extractUserInfo
- graphql.go: gate runtime.ReadMemStats per-request behind ENABLE_ALLOCATION_TRACKING flag (default off)
- graphql.go: collapse two-pass AST scan into single pass; lower-case once
- sanitization.go: cache compiled redaction regexes per pattern via sync.Map; hoist inner constants to pkg vars
- proxy.go: hoist connection/timeout substrings to pkg vars; sentinel errors for static error paths; drop dead Headers map alloc
- metrics_aggregator.go: log-field allocation guarded by Logger.IsLevelEnabled
- logging/logger.go: add IsLevelEnabled helper
- lru_cache.go: 16-shard sharding, FNV-1a routing (concurrent throughput +22%)
- cache/memory/lru_memory_cache.go: gzip compress/decompress moved outside mu.Lock
- rps_tracker.go: RWMutex+uint64 -> atomic.Uint64
- retry_budget.go: drop unused mutex
- api.go: bannedUsersIDs map+RWMutex -> sync.Map (+ snapshot/replace helpers)
- tracing/tracing.go: pkg-level constSpanAttrs, copy-then-append in StartSpanWithAttributes
- admin_dashboard.go: handleStatsWebSocket reuses bytes.Buffer + json.Encoder per connection
Build / runtime:
- Makefile: -ldflags="-s -w" -trimpath, CGO_ENABLED=0 for build (=1 for test recipes)
- Dockerfile + Dockerfile.goreleaser: ENV GOMEMLIMIT=512MiB
- main.go: blank import go.uber.org/automaxprocs (cgroup-aware GOMAXPROCS)
- main.go: PPROF_PORT env var wires net/http/pprof on 127.0.0.1 only with full server timeouts
- README.md: env-var docs + metric-label docs updated; cardinality note
Test coverage push (per package):
- main 51.2% -> 74.7%
- cache 66.3% -> 93.7%
- cache/redis 45.5% -> 98.2%
- tracing 66.7% -> 72.9%
- (cache/memory 91.6%, logging 91.9%, monitoring 77.6%, pkg/pools 100% unchanged)
New test files: coverage_micro_test, coverage_extras_test, server_handlers_test,
api_health_test, admin_dashboard_cluster_test, metrics_aggregator_test, concerns_test,
cache/cache_coverage_test, cache/redis/redis_coverage_test, tracing/tracing_coverage_test.
Bug fix: connection_resilience_test.go TestIntegratedHealthManagement.health_manager_startup
was sync.Once-coupled to InitializeBackendHealth and panicked when another test (e.g. via
parseConfig) had already triggered Once. Use NewBackendHealthManager directly.
|
2026-04-19 19:49:24 +01:00 |
|
 lukaszraczyloandGitHub
|
cedee416a8
|
improvements mid may 2025 (#24)
* General improvements and bug fixes.
* Improve tests coverage.
* fixup! Improve tests coverage.
* Update README.md with latest changes.
* Fix the uint32
* Resolve issue with race condition for logging.
* fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* Fix the test of the rate limiter
* Add default ratelimit.json file
* Update dependencies.
* Significant refactor.
* fixup! Significant refactor.
* fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
|
2025-09-30 18:27:33 +01:00 |
|
lukaszraczylo
|
5799f8ca7c
|
fixup! Fixes the code for additional test cases.
|
2024-12-06 13:22:18 +00:00 |
|
lukaszraczylo
|
427ed49d62
|
Update makefile to allow for local builds.
|
2024-08-20 12:22:57 +01:00 |
|
 lukaszraczyloandGitHub
|
61d7a45d00
|
Update cache library, use miniredis for testing, add additional benchmarks. (#14)
Update cache library,
Update logging library,
use miniredis for testing, add additional benchmarks.
|
2024-06-19 23:10:36 +01:00 |
|
lukaszraczylo
|
bc305dd8e9
|
Improve tests and speed things up a little.
|
2023-11-20 11:38:02 +00:00 |
|
lukaszraczylo
|
1390e7cdd1
|
Fix blocking the introspection + add unit tests.
|
2023-11-18 02:11:38 +00:00 |
|
 lukaszraczyloandGitHub
|
0b642f8be1
|
Add ability to reset metrics between crawl to limit payload absorbed (#5)
by the prometheus/victoria metric crawlers.
|
2023-11-16 16:45:48 +00:00 |
|
lukaszraczylo
|
35e6069f5e
|
Add the healtcheck checks on the end server.
|
2023-10-19 15:43:49 +01:00 |
|
lukaszraczylo
|
089d05b7c3
|
Improve cache mechanism using sync map
|
2023-10-13 15:37:57 +01:00 |
|
lukaszraczylo
|
f41b2ae46f
|
New: Proxy all the requests to the graphql server
|
2023-10-11 11:26:55 +01:00 |
|
 lukaszraczyloandGitHub
|
917ee1a431
|
Add cache ttl support (#3)
* Add ability to use `@cached(ttl: 120)`
* Update documentation.
|
2023-10-10 19:21:25 +01:00 |
|
 lukaszraczyloandGitHub
|
bc128493b0
|
Add tests (#2)
* Initial tests draft.
* Add tests for parsing jwt token
* Further code optimisations
|
2023-10-10 13:54:03 +01:00 |
|
lukaszraczylo
|
ac44056a00
|
Add role ratelimit (#1)
* Add ratelimit configuration.
* Add rate limiting :party:
|
2023-10-09 17:46:50 +01:00 |
|
lukaszraczylo
|
3ac7c115aa
|
Blocking introspection queries.
|
2023-10-08 18:07:24 +01:00 |
|
lukaszraczylo
|
39d3afdd05
|
Initial commit.
|
2023-10-07 11:14:20 +01:00 |
|