Closed davemarco closed 1 week ago
This pull request introduces multiple changes across several files, primarily focusing on the transition from LogbackFormatter
to YscopeFormatter
in various decoder classes. The SettingsDialog
component has an updated helperText
to provide clearer guidance on JSON log event syntax. New utility functions and classes are introduced for handling Yscope format strings, including specific field formatters for rounding and timestamps. Additionally, the LogbackFormatter
file has been removed, reflecting a shift in the logging formatting approach.
File | Change Summary |
---|---|
src/components/modals/SettingsModal/SettingsDialog.tsx |
Updated helperText in CONFIG_FORM_FIELDS to provide a detailed description of JSON log event field placeholders and timestamp formatting. |
src/services/decoders/ClpIrDecoder.ts |
Replaced LogbackFormatter with YscopeFormatter . Updated formatter instantiation and removed LogbackFormatter import. |
src/services/decoders/JsonlDecoder/index.ts |
Replaced LogbackFormatter with YscopeFormatter . Updated formatter instantiation. |
src/services/formatters/LogbackFormatter.ts |
Removed the entire LogbackFormatter file, including its class and associated methods. |
src/typings/formatters.ts |
Replaced LogbackFormatterOptionsType with YscopeFormatterOptionsType . Introduced new interfaces and types for Yscope formatting, including regex patterns for parsing. |
src/utils/config.ts |
Updated CONFIG_DEFAULT constant to modify the formatString property under CONFIG_KEY.DECODER_OPTIONS . |
src/utils/js.ts |
Introduced getNestedJsonValue function to retrieve nested values from JSON objects based on a specified path. |
src/services/formatters/YscopeFormatter/FieldFormatters/RoundFormatter.ts |
Added RoundFormatter class for formatting numerical values by rounding. |
src/services/formatters/YscopeFormatter/FieldFormatters/TimestampFormatter.ts |
Added TimestampFormatter class for formatting timestamps based on a specified date-time pattern. |
src/services/formatters/YscopeFormatter/index.ts |
Introduced YscopeFormatter class for formatting log events using YScope format strings. |
src/services/formatters/YscopeFormatter/utils.ts |
Added utility functions for processing Yscope field formatting, including regex patterns and string manipulation functions. |
helperText
property of the CONFIG_FORM_FIELDS
array in the SettingsDialog
component, which is also modified in PR #106 to clarify upcoming changes to the decoder format string syntax.uiState
in the StateContextProvider in PR #88 may indirectly relate to the changes in the main PR, as both involve updates to user interface elements and their states, although they do not directly modify the same components.<SearchTabPanel/>
in PR #107 enhances the user interface, which aligns with the main PR's focus on improving user experience through clearer helper text in the settings modal.[!WARNING]
Rate limit exceeded
@davemarco has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 59 seconds before requesting another review.
⌛ How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.🚦 How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://docs.coderabbit.ai/faq) for further information.📥 Commits
Reviewing files that changed from the base of the PR and between c6c65a121cbc7396d4f2399350692fb0bf00e1df and 2bba5eea071a594bfc8586ad67d3f70c7e7e7038.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Added support for edge case with an escaped backlash (double backslash) in front of a field placeholder. For example \\{placeholder}
is a valid placeholder while \{placeholder}
is not.
Reminder to mention this fixes #86.
Description
Adds a new Yscope Formatter based on spec in notion.
The format string is parsed once in the formatter class constructor. For each placeholder, we create an object and store it in a class-level list. The object contains the field name, and a formatter for that field name. Each field formatter type has its own class. For now, we just have timestamp and round.
Afterwards, when log events are decoded, we iterate through array of placeholders to format the log event fields
Future Work
(1) We will need a way for users to see docs for new format string syntax in another PR. (2) Add support for default format string
Validation performed
Tested with test event in notion.
Summary by CodeRabbit
New Features
RoundFormatter
andTimestampFormatter
for improved numerical and timestamp formatting.getNestedJsonValue
, for retrieving nested values from JSON objects.YscopeFormatter
class for formatting log events with a YScope format string.Bug Fixes
Chores
LogbackFormatter
and associated documentation.