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
2022-08-14 10:12:58 +01:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2022-12-12 15:25:30 +05:30
2023-03-02 15:46:28 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2023-07-11 20:22:17 +01:00
2023-07-11 20:26:35 +01:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2025-11-07 01:46:40 +00:00
2023-07-30 17:48:48 -07:00
2020-01-13 20:59:16 +00:00
2022-12-16 14:22:23 +05:30
2023-11-26 16:02:42 +00:00
2022-04-25 12:28:31 +02:00
2023-02-08 20:40:06 +00:00
2023-07-19 14:21:39 +01:00
2023-12-26 11:55:26 +00:00
2023-11-26 16:06:45 +00:00
2022-12-15 12:36:31 +05:30
2022-01-23 12:04:32 +00:00
2022-12-07 07:49:18 +00:00
2023-06-11 15:26:52 +01:00

oneuptime logo

OneUptime: The Complete Open-Source Observability Platform

OneUptime is a comprehensive solution for monitoring and managing your online services. Whether you need to check the availability of your website, dashboard, API, or any other online resource, OneUptime can alert your team when downtime happens and keep your customers informed with a status page. OneUptime also helps you handle incidents, set up on-call rotations, run tests, secure your services, analyze logs, track performance, and debug errors.

OneUptime replaces multiple tools with one integrated platform:

Uptime Monitoring

Monitor the availability and response time of your online services from multiple locations around the world. Get notified via email, SMS, Slack, or other channels when something goes wrong. Replace tools like Pingdom.

Monitoring

Status Pages

Communicate with your customers and stakeholders during downtime or maintenance. Create a custom-branded status page that shows the current status and history of your services. Replace tools like StatusPage.io.

Status Pages

Incident Management

Manage incidents from start to finish with a collaborative workflow. Create incident reports, assign tasks, update stakeholders, and document resolutions. Replace tools like Incident.io.

Incident Management

On Call and Alerts

Schedule on-call shifts for your team and define escalation policies. Ensure that the right person is notified at the right time when an incident occurs. Replace tools like PagerDuty.

On Call and Alerts

Logs Management

Collect, store, and analyze logs from your online services. Search, filter, and visualize log data to gain insights and troubleshoot issues. Replace tools like Loggly.

Logs Management

Workflows

Integrate OneUptime with your existing tools and automate your workflows. Integrate with tools like Slack, Jira, GitHub, and 5000+ more.

Workflows

Application Performance Monitoring

Measure and optimize the performance of your online apps and services. Track key metrics such as traces, response time, throughput, error rate, and user satisfaction. Replace tools like NewRelic and DataDog.

APM

Coming Soon

  • Error Tracking: Detect and diagnose errors in your online services. Get detailed error reports with stack traces, context, and user feedback. Replace tools like Sentry.
  • Reliability Copilot: Scan your code and fix performance issues and errors automatically. Get recommendations for improving the reliability of your online services.

All under one platform.

Get Started for Free with OneUptime Cloud

OneUptime Cloud is the easiest and fastest way to monitor your website uptime and performance. You can sign up for free to OneUptime Cloud and enjoy the full benefits of OneUptime without any installation or maintenance hassle.

By using OneUptime Cloud, you also support the development of OneUptime open source project, which is a powerful and flexible tool for website monitoring. You can find more information about OneUptime open source project on GitHub. The code of OneUptime is completely open source, which means you can access, modify, and distribute it freely. You can also contribute to the project by reporting issues, suggesting features, or submitting pull requests.

If you need advanced features, such as API Access, Advanced Workflows, or Advanced Access Control, you can upgrade to a paid plan anytime. You can compare the different plans and pricing on OneUptime Pricing page.

Community vs. Enterprise Editions

Edition Ideal For Highlights Requirements
Community Edition Self-hosters getting started with the open-source stack Full OneUptime feature set with the standard security posture; community-driven support channels; rapid updates via public releases None
Enterprise Edition Regulated teams that need hardened deployments and premium support Hardened container images with additional security controls;
Custom features and roadmap input;
Dedicated engineer with 1-hour priority phone support;
Custom data residency and retention options;
Deploy on private cloud or SaaS with annual invoicing
Valid enterprise license (contact sales@oneuptime.com)

Installation

Philosophy

Our mission is to reduce downtime and increase the number of successful products in the world. To do that, we built a platform that helps you understand the causes of downtime, incidents and help reduce toil. Our product is open-source, free and available for everyone to use.

Contributing

We <3 contributions big and small. In priority order (although everything is appreciated) with the most helpful first:

Donate

If you like the project, please consider a small donation. Every single dollar will be used to ship new features or maintain existing ones. 100% of the work we do is open-source. Please donate here

Merch: Support the development of OneUptime by purchasing from our Merch Store. All revenue generated from the store will go directly towards funding the open-source development of OneUptime. Show your support and get some cool swag!

Description
No description provided
Readme Apache-2.0 551 MiB
Languages
TypeScript 84.8%
EJS 12.3%
Shell 0.9%
CSS 0.5%
HCL 0.5%
Other 0.9%