Commit Graph

26 Commits

Author SHA1 Message Date
simlarsen
25f9b826cf chore: npm audit fix 2026-02-11 02:38:02 +00:00
Nawaz Dhandala
a7c38dcbf2 refactor(FluentLogsIngestService): improve code readability by formatting function arguments and object properties 2026-02-09 13:14:39 +00:00
Nawaz Dhandala
6b8dd9e8b5 feat(FluentLogsIngestService): enhance log ingestion with structured fields and attributes extraction
test(FluentLogsIngestService): add comprehensive tests for log normalization and attribute extraction
2026-02-09 13:05:52 +00:00
simlarsen
4a7f27a372 chore: npm audit fix 2026-01-27 02:04:49 +00:00
simlarsen
1928244a8e chore: npm audit fix 2026-01-24 01:54:38 +00:00
simlarsen
d3d0dedfee chore: npm audit fix 2026-01-21 02:01:12 +00:00
simlarsen
79b36c5b27 chore: npm audit fix 2026-01-15 01:57:09 +00:00
Nawaz Dhandala
f016c02dfb fix: Update telemetryServiceId references to serviceId in ExceptionUtil for consistency 2026-01-09 18:39:53 +00:00
Nawaz Dhandala
e7089e9e85 Refactor TelemetryService to Service across the application
- Replaced all instances of TelemetryService with Service in components, pages, and utilities.
- Updated related imports and state management to reflect the new Service model.
- Removed the TelemetryServices view and associated routes, as it is no longer needed.
- Adjusted breadcrumb and route mappings to remove references to Telemetry Services.
- Ensured that all relevant functionality, such as logs and metrics, now utilize the Service model.
2026-01-09 15:49:52 +00:00
Nawaz Dhandala
d838343eea style: Remove redundant test for null/undefined handling in ExceptionUtil 2025-12-29 14:42:41 +00:00
Nawaz Dhandala
9ff1a20858 feat: add GitHub App Installation ID to Project migration and update related components 2025-12-28 22:50:53 +00:00
Nawaz Dhandala
1f28f0191d fix: update package-lock.json to include peer dependency and improve query prop handling in AIAgentTaskTable 2025-12-28 19:36:12 +00:00
Nawaz Dhandala
755b76cbce style: Improve code formatting and readability in various files 2025-12-28 12:40:00 +00:00
Nawaz Dhandala
f11c8fd60b feat: Implement normalization for dynamic values in exception messages and add comprehensive tests 2025-12-28 11:30:39 +00:00
Nawaz Dhandala
60b2ee0b45 refactor: remove playwright dependencies from Dockerfile 2025-12-17 12:27:13 +00:00
Nawaz Dhandala
6335887d62 feat: Reduce npm fetch retry timeout values in Dockerfiles 2025-12-16 13:30:12 +00:00
Nawaz Dhandala
c617372e37 feat: Add repository field to package.json files across the project 2025-12-11 21:31:52 +00:00
simlarsen
f52e73afb2 chore: npm audit fix 2025-11-25 01:48:46 +00:00
simlarsen
883f51e2d2 chore: npm audit fix 2025-11-22 01:43:11 +00:00
Nawaz Dhandala
cda3be805b Merge branch 'master' into sp-master-pw 2025-11-21 16:40:19 +00:00
Nawaz Dhandala
62578b2389 Rename package from @oneuptime/probe-ingest to @oneuptime/telemetry 2025-11-20 19:05:48 +00:00
simlarsen
ac239ffe4d chore: npm audit fix 2025-11-20 01:45:52 +00:00
simlarsen
dade1d0403 chore: npm audit fix 2025-11-15 01:44:36 +00:00
simlarsen
2f102acdc2 chore: npm audit fix 2025-11-13 01:48:58 +00:00
Simon Larsen
888d8d6fbf refactor: clean up code formatting and improve readability across multiple files 2025-11-10 14:36:44 +00:00
Nawaz Dhandala
f49b1995df feat(telemetry): add new Telemetry service (OTel, Syslog, Fluent, Metrics, Traces) and unified ingestion pipeline
- Add Telemetry service entrypoint
  - Telemetry/Index.ts: app bootstrap, routes mounting, infrastructure init and Telemetry SDK init.

- Unified queue + worker
  - Telemetry/Jobs/TelemetryIngest/ProcessTelemetry.ts: single worker that dispatches queued jobs to specific processors (logs, traces, metrics, syslog, fluent logs).
  - Telemetry/Services/Queue/TelemetryQueueService.ts: central queue API and job payload types.
  - Per-type Queue wrappers (LogsQueueService, MetricsQueueService, TracesQueueService, FluentLogsQueueService, SyslogQueueService).

- OpenTelemetry ingestion middleware and proto support
  - Telemetry/Middleware/OtelRequestMiddleware.ts: detect OTLP endpoint (logs/traces/metrics), decode protobuf bodies using protobufjs and set product type.
  - Telemetry/ProtoFiles/OTel/v1/*.proto: include common.proto, logs.proto, metrics.proto, resource.proto, traces.proto for OTLP v1 messages.

- Ingest services
  - Telemetry/Services/OtelLogsIngestService.ts: parse incoming OTLP logs, map attributes, convert timestamps, batch insert logs.
  - Telemetry/Services/OtelTracesIngestService.ts: parse OTLP traces, build span rows, extract exceptions, batch insert spans and exceptions, save telemetry exception summary.
  - Telemetry/Services/OtelMetricsIngestService.ts: parse OTLP metrics, normalize datapoints, batch insert metrics and index metric name -> service map.
  - Telemetry/Services/SyslogIngestService.ts: syslog ingestion endpoints, parser integration, map syslog fields to attributes and logs.
  - Telemetry/Services/FluentLogsIngestService.ts: ingest Fluentd style logs, normalize entries and insert into log backend.
  - Telemetry/Services/OtelIngestBaseService.ts: helpers to resolve service name from attributes/headers.

- Syslog parser and utilities
  - Telemetry/Utils/SyslogParser.ts: robust RFC5424 and RFC3164 parser, structured data extraction and sanitization.
  - Telemetry/Tests/Utils/SyslogParser.test.ts: unit tests for parser behavior.

- Telemetry exception utilities
  - Telemetry/Utils/Exception.ts: generate exception fingerprint and upsert telemetry exception status (saveOrUpdateTelemetryException).

- Queue & job integration
  - New integration with Common/Server/Infrastructure/Queue and QueueWorker, job id generation and telemetry job types.
  - Telemetry services add ingestion jobs instead of processing synchronously.

- Config, build and dev tooling
  - Add Telemetry/package.json, package-lock.json, tsconfig.json, nodemon.json, jest config.
  - New script configs and dependencies (protobufjs, ts-node, jest, nodemon, etc).

- Docker / environment updates
  - docker-compose.base.yml, docker-compose.dev.yml, docker-compose.yml: rename service from open-telemetry-ingest -> telemetry and wire TELEMETRY_* envs.
  - config.example.env: rename and consolidate environment variables (OPEN_TELEMETRY_* -> TELEMETRY_*, update hostnames and ports).
  - Tests/Scripts/status-check.sh: update ready-check target to telemetry/status/ready.

- Other
  - Telemetry/Services/Queue/*: export helpers and legacy-compatible job interface shims.
  - Memory cleanup and batching safeguards across ingest services.
  - Logging and capture spans added to key code paths.

BREAKING CHANGES / MIGRATION NOTES:
- Environment variables and docker service names changed:
  - Replace OPEN_TELEMETRY_... vars with TELEMETRY_... (PORT, HOSTNAME, CONCURRENCY, DISABLE_TELEMETRY, etc).
  - docker-compose entries moved from "open-telemetry-ingest" to "telemetry" and image name changed to oneuptime/telemetry.
  - Update any deployment automation and monitoring checks referencing the old service name or endpoints.
- Consumers: OTLP endpoints and behavior remain supported, but ingestion is now queued and processed asynchronously.

Testing / Running:
- Install deps in Telemetry/ (npm install) after syncing Common workspace.
- Run dev: npx nodemon (nodemon.json) or build & start using provided scripts.
- Run tests with jest (Telemetry test suite includes SyslogParser unit tests).

Files added/modified (high level):
- Added many files under Telemetry/: Index, Jobs, Middleware, ProtoFiles, Services, Utils, Tests, package and config artifacts.
- Modified docker-compose.* and config.example.env and status check script to use new TELEMETRY service/vars.
2025-11-07 21:36:47 +00:00