Skip to content

REL-1277692: Custom JSON Config Supporting RabbitMQ File Log Receiver#61

Open
amithshet wants to merge 7 commits intomainfrom
REL-1277692-file-log-receiver-custom-json
Open

REL-1277692: Custom JSON Config Supporting RabbitMQ File Log Receiver#61
amithshet wants to merge 7 commits intomainfrom
REL-1277692-file-log-receiver-custom-json

Conversation

@amithshet
Copy link
Copy Markdown
Collaborator

@amithshet amithshet commented Apr 16, 2026

Custom JSON Config Supporting RabbitMQ File Log Receiver

Please find the SQE-verified evidence attached.
REL-1277692 Custom JSON Config Supporting RabbitMQ File Log Receiver Test Results latest.docx

@amithshet amithshet changed the title REL-1277692: Custom Json Config Supporting RabbitMQ File Log Receiver REL-1277692: Custom JSON Config Supporting RabbitMQ File Log Receiver Apr 16, 2026
@amithshet amithshet marked this pull request as ready for review April 27, 2026 05:33
@amithshet amithshet requested a review from a team as a code owner April 27, 2026 05:33
@amithshet amithshet requested a review from Raghava108 April 27, 2026 05:35
Copy link
Copy Markdown

@Raghava108 Raghava108 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation and example configuration to support a RabbitMQ file log receiver via custom JSON (OpenTelemetry overrides) in the Environment Watch setup docs.

Changes:

  • Adds openTelemetryOverrides.logSources (RabbitMQ) to the sample environment-watch-configuration.json.
  • Extends the troubleshooting guide with a File Log Receiver section and validation steps.
  • Introduces a new “File Log Receiver Configuration” document and links it from the main Custom JSON configuration guide.

Reviewed changes

Copilot reviewed 4 out of 7 changed files in this pull request and generated 5 comments.

File Description
resources/custom-json-troubleshooting-images/environment-watch-configuration.json Updates the sample JSON to include RabbitMQ file log receiver overrides.
elastic-stack-setup/troubleshooting/custom-json-troubleshooting.md Adds troubleshooting workflow for RabbitMQ file log receiver via custom JSON.
elastic-stack-setup/elastic-stack-setup-02-environment-watch/ew-03-extensibility-configuration/ew-extensibility-configuration-06-json-configuration/ew-json-configuration-07-file-log-receiver.md New dedicated guide for file log receiver configuration and Kibana verification.
elastic-stack-setup/elastic-stack-setup-02-environment-watch/ew-03-extensibility-configuration/ew-extensibility-configuration-06-json-configuration/ew-extensibility-configuration-06-json-configuration.md Updates the overview doc to mention file log receivers and link to the new guide.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread elastic-stack-setup/troubleshooting/custom-json-troubleshooting.md
Copy link
Copy Markdown
Contributor

@dinesh1010101 dinesh1010101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amithshet Reviewed the content and approved. Provided very minor comments, please address them before merging.

# Custom JSON Configuration

This document provides an overview of the custom JSON configuration file used by Environment Watch. The configuration allows users to centrally define and customize monitoring for Windows services, certificates, SQL servers, and scrapers, as well as configure Slack notifications for alerting.
This document provides an overview of the custom JSON configuration file used by Environment Watch. The configuration allows users to centrally define and customize monitoring for Windows services, certificates, SQL servers, file log receivers, and scrapers, as well as configure Slack notifications for alerting.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since JSON has been extended to support multiple components, this could be easier to read if it were broken into bullet points instead of a single sentence. This would make the documentation quicker to scan.

Suggested rewrite:
This document provides an overview of the custom JSON configuration file used by Environment Watch. The configuration allows users to centrally define and customize monitoring for:

Windows services
Certificates
SQL servers
File log receivers
Scrapers
It also includes configuration options for Slack notifications used for alerting.

Copy link
Copy Markdown
Collaborator Author

@amithshet amithshet Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is updated.

### Assumptions

- The log file is expected to be in **plaintext** format, not JSON.
- The log file path must be accessible from the host where the Environment Watch Windows service is running.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify that the log file must be readable by the Windows account running the Environment Watch Windows service.
This helps avoid confusion where admins assume their own user permissions are sufficient, when the service may be running under a different account. For example: The log file path must be accessible from the host where the Environment Watch Windows service is running. The file must be readable by the Windows account under which the Environment Watch service runs.

Copy link
Copy Markdown
Collaborator Author

@amithshet amithshet Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the following point:
The log file must be readable by the Windows account running the Environment Watch Windows service.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we combine these 2-bullet point as they are in example? as second line is more of a clarification.


### Default Behavior

If a log source is not explicitly configured in the `logSources` array, it will use its default settings from the source code. For example, if the RabbitMQ log source is not defined in the JSON configuration, it will not be enabled by default since the default `enabled` value for the RabbitMQ log source is `false` in the source code. To enable it, you must explicitly define it in the `logSources` array with `"enabled": true`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding a short opening sentence to clarify that defaults apply at two different levels: log source enablement and individual configuration properties.
Updated:
Defaults apply at two levels: whether a log source is enabled, and the individual configuration properties used to parse logs.

If a log source is not explicitly configured in the logSources array, it will use its default settings from the source code. For example, if the RabbitMQ log source is not defined in the JSON configuration, it will not be enabled by default since the default enabled value for the RabbitMQ log source is false. To enable it, you must explicitly define it in the logSources array with "enabled": true.

At the property level, if a property is not set or is set to an empty or null value, it falls back to the default value defined in the source code. This applies to the following properties:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the suggested content.


## Overview

The file log receiver allows Environment Watch to collect and parse log files from custom sources using the OpenTelemetry Collector. By defining log sources in the `openTelemetryOverrides` section, users can extend monitoring to include application-specific log files (e.g., RabbitMQ logs) with custom parsing rules for log file path, multiline handling, regex extraction, and timestamp parsing.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify who this documentation is intended for to set expectations early.
For example: Overview
The file log receiver allows Environment Watch to collect and parse log files from custom sources using the OpenTelemetry Collector. This configuration is intended for Relativity administrators managing Environment Watch on self‑hosted environments who want to extend monitoring to include application‑specific log files (for example, RabbitMQ logs).

By defining log sources in the openTelemetryOverrides section of the custom JSON configuration file, administrators can configure log file paths, multiline handling, regex‑based field extraction, and timestamp parsing.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revised the suggested content.


---

## Configure File Log Receiver
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a Relativity administrator perspective, this section correctly emphasizes that regex configuration and named capture groups are critical to successful log ingestion. Because regex behavior is highly sensitive and varies by log format, it may help to add a small amount of expectation‑setting language without prescribing specific regex implementations. Specifically, consider reinforcing that:

The regex patterns shown are examples aligned to known RabbitMQ log formats, and should be validated against the admin’s actual log output before being used in production.
Timestamp parsing and field extraction are common failure points, and malformed regex can result in logs being dropped or the collector failing to start.

This would help admins understand the operational risk and validation expectation, while still keeping the documentation flexible and not locking in specific regex patterns.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In here, updated the suggested points under 'Important' banner to convey the operational risk and validation expectation associated with this configuration.

The regex patterns shown are examples aligned to known RabbitMQ log formats, and should be validated against the admin’s actual log output before being used in production.
Timestamp parsing and field extraction are common failure points, and malformed regex can result in logs being dropped or the collector failing to start.

Copy link
Copy Markdown
Contributor

@KarunaDhawan KarunaDhawan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just left a comment beside that everything looks correct format wise.

### Assumptions

- The log file is expected to be in **plaintext** format, not JSON.
- The log file path must be accessible from the host where the Environment Watch Windows service is running.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we combine these 2-bullet point as they are in example? as second line is more of a clarification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants