147 Commits

Author SHA1 Message Date
Nawaz Dhandala
5f398bdb31 Add utility classes for telemetry: Monitor, StackTrace, and Syslog parsing
- Implemented MonitorUtil for managing monitor secrets and populating them in monitor steps and tests.
- Created StackTraceParser to parse and structure stack traces from various programming languages.
- Developed SyslogParser to handle and parse syslog messages in both RFC 5424 and RFC 3164 formats.
2026-04-02 14:04:13 +01:00
Nawaz Dhandala
ea71c8bd75 feat: Implement Workflow API and Queue Management
- Added ManualAPI for manually triggering workflows via GET and POST requests.
- Introduced WorkflowAPI for updating workflows with authorization checks.
- Created documentation for JavaScript and Webhook components.
- Established WorkflowFeatureSet to initialize routing and job processing.
- Developed QueueWorkflow service for managing workflow queue operations.
- Implemented RunWorkflow service to execute workflows with error handling and logging.
- Added utility for loading component metadata dynamically.
2026-04-01 22:05:19 +01:00
Nawaz Dhandala
f9c90d7143 refactor: remove OpenTelemetry Collector and integrate telemetry service
- Deleted the otel-collector job from GitHub workflows and related deployment configurations.
- Updated Helm charts to remove references to the OpenTelemetry Collector, including its deployment and service definitions.
- Added gRPC server functionality directly in the telemetry service to handle telemetry ingestion.
- Updated environment variables and Docker configurations to reflect the removal of the OpenTelemetry Collector.
- Adjusted telemetry service to support both HTTP and gRPC protocols for telemetry data.
2026-03-05 09:36:11 +00:00
Nawaz Dhandala
3cbe443862 Refactor workflow service and API components
- Removed workflow service from docker-compose files.
- Updated environment configuration to remove workflow port.
- Implemented new ComponentCodeAPI, ManualAPI, and WorkflowAPI for handling workflow operations.
- Created QueueWorkflow service for managing workflow queue operations.
- Developed RunWorkflow service to execute workflows with improved error handling and logging.
- Added component metadata loading utility for dynamic component management.
- Introduced documentation for JavaScript and Webhook components.
- Enhanced overall structure and organization of workflow feature set.
2026-03-04 13:39:25 +00:00
Nawaz Dhandala
acaab0fb1a Add documentation views and partials for error handling and content display
- Created NotFound.ejs for 404 error page with user-friendly messaging and navigation.
- Added ServerError.ejs for 500 error handling with retry and documentation links.
- Introduced Content.ejs partial for structured article content display.
- Developed Head.ejs partial for consistent head elements across pages.
- Implemented Header.ejs partial for navigation and branding.
- Created Nav.ejs partial for sidebar navigation with dynamic links.
- Added OpenSourceCommitment.ejs partial to highlight open-source contributions.
- Implemented Pagination.ejs partial for navigation between documentation sections.
2026-03-03 19:45:46 +00:00
Nawaz Dhandala
3e5cd57082 Refactor frontend build and deployment scripts; consolidate services into a single app
- Updated package.json in StatusPage to correct dependency path for Common.
- Enhanced main package.json with new scripts for building and watching frontend applications.
- Modified tsconfig.json to exclude frontend directories from compilation.
- Simplified Nginx configuration by removing individual upstreams for each service and routing all to a single app upstream.
- Refactored configure.sh to streamline Dockerfile generation.
- Cleaned up docker-compose files by consolidating services and removing unnecessary definitions.
- Introduced new frontend handling logic in Index.ts for rendering different frontend applications.
- Added utility functions for managing status page data and RSS feeds in StatusPage.ts.
- Created dev.sh and frontend-run.sh scripts to facilitate development and build processes for frontend applications.
2026-03-03 17:51:47 +00:00
Nawaz Dhandala
72af43b323 fix: Remove home service from docker-compose.yml 2026-03-03 14:59:34 +00:00
Nawaz Dhandala
c309fafdb6 Remove IsolatedVM service and related configurations from the project
- Deleted package.json and tsconfig.json for IsolatedVM.
- Removed isolated-vm upstream configuration from Nginx default.conf.template.
- Removed ISOLATED_VM_PORT and telemetry settings from config.example.env.
- Cleaned up docker-compose.base.yml by removing isolated-vm service and its environment variables.
- Updated docker-compose.dev.yml to eliminate isolated-vm service and its associated volumes.
- Removed isolated-vm service from docker-compose.yml.
2026-03-03 12:25:31 +00:00
Nawaz Dhandala
560f45f3cc feat(MCP): Introduce MCP types, logger, and integration into the application
- Added McpTypes.ts for defining JSON schema and tool information.
- Created ModelType.ts and OneUptimeOperation.ts enums for model types and operations.
- Implemented MCPLogger for structured logging in MCP servers.
- Integrated MCP routes into the main application index.
- Updated package.json to include @modelcontextprotocol/sdk dependency.
- Removed MCP-related configurations from Helm chart and Docker Compose files.
- Added Data Processing Agreement (DPA) page and route to the legal section.
- Updated legal.ejs to include a link to the new DPA page.
2026-03-03 11:34:46 +00:00
Nawaz Dhandala
bc6c81aae9 refactor: Remove unused probe-2 service from docker-compose 2026-03-02 21:56:41 +00:00
Nawaz Dhandala
dc59d59811 feat: Add telemetry API for probe and server monitor ingestion
- Implemented Probe registration endpoint to handle global probes.
- Created Server Monitor ingestion API with endpoints for secret key verification and response ingestion.
- Developed job processing functions for incoming request and probe ingestion.
- Added middleware for probe authorization and request type definitions.
- Enhanced monitor utility functions to populate secrets in monitor steps.
- Introduced queue stats and failed jobs endpoints for server monitor.
2026-03-02 21:02:24 +00:00
Nawaz Dhandala
3e48478b4f Add sidenav partial for API reference documentation 2026-02-22 13:40:51 +00:00
Nawaz Dhandala
415222561b feat: add health checks and common dependencies for services in Docker Compose files 2026-02-16 14:34:26 +00:00
Nawaz Dhandala
83107857bd feat: Add MCP service configuration and related environment variables 2025-12-16 11:04:56 +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
Simon Larsen
a80b7ba88c chore(fluent-ingest): migrate fluent log ingest into open-telemetry-ingest and remove legacy fluent-ingest service
- Move Fluent/Fluent Bit logs ingestion into open-telemetry-ingest:
  - Add OpenTelemetryIngest/API/Fluent.ts (routes for /fluentd and queue endpoints)
  - Add Queue service, job worker and processor:
    - OpenTelemetryIngest/Services/Queue/FluentLogsQueueService.ts
    - OpenTelemetryIngest/Jobs/TelemetryIngest/ProcessFluentLogs.ts
  - Register Fluent API and job processing in OpenTelemetryIngest/Index.ts
  - Introduce QueueName.FluentLogs and related queue usage

- Remove legacy FluentIngest service and configuration:
  - Delete fluent-ingest docker-compose/dev/base entries and docker-compose.yml service
  - Remove fluent-ingest related helm values, KEDA scaledobject, ingress host and schema entries
  - Remove FLUENTD_HOST env/values and replace FLUENT_INGEST_HOSTNAME -> FLUENT_LOGS_HOSTNAME (pointing to open-telemetry-ingest)
  - Update config.example.env keys (FLUENT_LOGS_CONCURRENCY, DISABLE_TELEMETRY_FOR_FLUENT_LOGS)
  - Remove FluentIngestRoute and FLUENT_INGEST_URL/hostname usages from UI config/templates
  - Remove VSCode launch debug config for Fluent Ingest
  - Remove Fluent ingest E2E status check entry in Tests/Scripts/status-check.sh
  - Update docs/architecture diagram and Helm templates to reflect "FluentLogs" / Fluent Bit flow

- Misc:
  - Remove FLUENTD_HOST environment injection from docker-compose.base.yml
  - Cleanup related values.schema.json and values.yaml entries

This consolidates log ingestion under the OpenTelemetry ingest service and removes the separate FluentIngest service and its configuration.
2025-11-07 19:37:31 +00:00
Simon Larsen
64c0c8b4cb haraka delete 2025-07-25 09:07:09 +01:00
Simon Larsen
fe64380384 feat: add server monitor ingest service with Docker and configuration updates 2025-02-21 20:23:27 +00:00
Simon Larsen
815ae7161d Rename Ingestor to ProbeIngest; update configurations, routes, and Docker support; add new request types and workflows 2024-11-21 17:18:22 +00:00
Simon Larsen
3a1f5c7120 Refactor OpenTelemetry Ingest Dockerfile and configuration; update environment variables and docker-compose for new service integration 2024-11-21 17:08:35 +00:00
Simon Larsen
945cef653c Add Incoming Request Ingest service with configuration, Docker support, and tests 2024-11-21 14:41:37 +00:00
Simon Larsen
9244e49e6b Add Fluent Ingest service with configuration, Docker support, and tests 2024-11-21 13:31:11 +00:00
Simon Larsen
26e3bb2074 Add documentation files and update configuration for Docs service 2024-09-18 16:38:53 +01:00
Simon Larsen
68389cda85 Add API reference code examples and configuration files 2024-09-18 14:39:11 +01:00
Simon Larsen
6aa9895e72 refactor workflow 2024-09-16 15:22:15 -07:00
Simon Larsen
86168a50ee Add Worker service configuration, deployment setup, and Nginx routing 2024-09-16 08:42:50 -07:00
Simon Larsen
f728a94a80 Add Home service configuration and deployment setup 2024-09-16 08:11:21 -07:00
Simon Larsen
c6643d7f7c Update GreenlockUtil class to handle lets encrypt account key properly 2024-05-01 12:37:41 +01:00
Simon Larsen
78e9ad439c Add IsolatedVMHostname to EnvironmentConfig.ts and docker-compose files 2024-04-05 20:02:33 +01:00
Simon Larsen
c7f51cdade Fix async initialization of Workers and remove unused workflow service 2024-01-11 19:10:00 +05:30
Simon Larsen
7bf8b1b189 Add volume for certs in app.yaml and remove workers.yaml 2024-01-11 16:30:44 +05:30
Simon Larsen
2e8ee1d51b Remove unused launch configurations and update port values 2023-12-28 16:49:47 +00:00
Simon Larsen
d11a5e1d1e Update package name and hostnames 2023-12-28 15:54:27 +00:00
Simon Larsen
224824f1f1 Remove notification service and related configurations 2023-12-25 13:09:41 +00:00
Simon Larsen
4359b74f26 Remove unused files and configurations 2023-12-25 12:42:20 +00:00
Simon Larsen
cef7df73bb Remove unused files and configurations 2023-12-25 12:23:13 +00:00
Simon Larsen
a35462b3c9 Remove link-shortener service and related configurations 2023-12-11 19:03:04 +00:00
Simon Larsen
94b0cd47f9 Remove minio dependency from Helm chart and
related files
2023-12-01 21:20:30 +00:00
Simon Larsen
8a9cc10ff0 fix otel collector 2023-10-16 11:04:47 +01:00
Simon Larsen
ff0314ae9b add collector to docker compose 2023-10-09 19:21:38 +01:00
Simon Larsen
34817a1066 probe-api to ingestor 2023-10-09 18:54:23 +01:00
Simon Larsen
35d7f0ee59 remove update 2023-09-13 12:30:24 +05:30
Simon Larsen
8462fede09 add admin dash to docker compose 2023-08-25 15:51:26 +01:00
Simon Larsen
0c5fe2c722 add minio 2023-08-01 16:41:21 +01:00
Carl Downing
7a23067e18 don't 2023-07-30 08:08:53 -07:00
Carl Downing
3520e834eb shortner > shortener 2023-07-29 16:03:00 -07:00
Simon Larsen
ee99f3f558 add docs of ghcr to docker compose file 2023-07-29 14:20:13 +01:00
Simon Larsen
16166a70f8 fix docker compose 2023-07-22 14:35:31 +01:00
Simon Larsen
38b96e86c3 add nginx to prod and dev docker 2023-07-19 20:02:14 +01:00
Simon Larsen
e4d4bbb680 expose postrges port 2023-07-19 16:34:20 +01:00