Skip to content

Commit

Permalink
Merge pull request #19680 from newrelic/daily-release/01-08-25-morning
Browse files Browse the repository at this point in the history
Daily release/01 08 25 morning
  • Loading branch information
newrelic707195 authored Jan 9, 2025
2 parents 06f017f + 9bd86fa commit 9b71f69
Show file tree
Hide file tree
Showing 69 changed files with 2,204 additions and 2,558 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

135 changes: 135 additions & 0 deletions src/content/docs/logs/ui-data/parsing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,16 @@ Note that variable names must be explicitly set and be lowercase like `%{URI:uri
Geographic location from IP addresses. See [Geolocating IP addresses (GeoIP)](#geo) for more information.
</td>
</tr>

<tr>
<td>
`key value pairs`
</td>

<td>
Key Value Pair . See [Parsing Key Value Pairs](#parsing-key-value-pairs) for more information.
</td>
</tr>
</tbody>
</table>
</Collapser>
Expand Down Expand Up @@ -527,6 +537,131 @@ Note that variable names must be explicitly set and be lowercase like `%{URI:uri
* <DNT>**region**</DNT>: Abbreviation of state, province, or territory
* <DNT>**regionName**</DNT>: Name of state, province, or territory
</Collapser>

<Collapser
id="parsing-key-value-pairs"
title="Parsing Key Value Pairs"
>
The New Relic logs pipeline parses your log messages by default, but sometimes you have log messages that are formatted as key-value pairs. In this situation, you may want to be able to parse them and then be able to filter using the key-value attributes.

If that is the case, you can use the `key value pairs` [grok type](#grok-syntax), which will parse the key-value pairs captured by the grok pattern. This format relies on 3 main parts: the grok syntax, the prefix you would like to assign to the parsed key-value attributes, and the `key value pairs` [grok type](#grok-syntax). Using the `key value pairs` [grok type](#grok-syntax), you can extract and parse key-value pairs from logs that are not properly formatted; for example, if your logs are prefixed with a date/time string:

```json
2015-05-13T23:39:43.945958Z key1=value1,key2=value2,key3=value3
```

In order to extract and parse the key-value data from this log format, create the following Grok expression::

```
%{TIMESTAMP_ISO8601:containerTimestamp} %{GREEDYDATA:my_attribute_prefix:keyvalue()}
```

The resulting log is:

```
containerTimestamp: "2015-05-13T23:39:43.945958Z"
my_attribute_prefix.key1: "value1"
my_attribute_prefix.key2: "value2"
my_attribute_prefix.key3: "value3"
```

You can define the custom delimiter and separator also to extract the required key value pairs.

```json
2015-05-13T23:39:43.945958Z event:TestRequest request:bar
```

For example, with the following Grok expression:

```
%{TIMESTAMP_ISO8601:containerTimestamp} %{GREEDYDATA:my_attribute_prefix:keyvalue({"delimiter": " ", "keyValueSeparator": ":"})}
```

The resulting log is:

```
containerTimestamp: "2015-05-13T23:39:43.945958Z"
my_attribute_prefix.event: "TestRequest"
my_attribute_prefix.request: "bar"
```

If you want to omit the `my_attribute_prefix` prefix, you can include the `"noPrefix": true` in the configuration.

```
%{TIMESTAMP_ISO8601:containerTimestamp} %{GREEDYDATA:my_attribute_prefix:keyValue({"noPrefix": true})}
```

The resulting log is:

```
containerTimestamp: "2015-05-13T23:39:43.945958Z"
event: "TestRequest"
request: "bar"
```


If you want to set your custom quote character prefix, you can include the "quoteChar": in the configuration.

```json
2015-05-13T23:39:43.945958Z nbn_demo='INFO',message='This message contains information with spaces ,sessionId='abc123'
```

```
%{TIMESTAMP_ISO8601:containerTimestamp} %{GREEDYDATA:my_attribute_prefix:keyValue({"quoteChar": "'"})}
```

The resulting log is:

```
"my_attribute_prefix.message": "'This message contains information with spaces",
"my_attribute_prefix.nbn_demo": "INFO",
"my_attribute_prefix.sessionId": "abc123"
```

### Grok Pattern Parameters

You can customize the parsing behavior with the following options to suit your log formats:

* **delimiter**
* **Description:** String separating each key-value pair.
* **Default Value:** `,` (comma)
* **Override:** Set the field `delimiter` to change this behavior.

* **keyValueSeparator**
* **Description:** String used to assign values to keys.
* **Default Value:** `=`
* **Override:** Set the field `keyValueSeparator` for custom separator usage.

* **quoteChar**
* **Description:** Character used to enclose values with spaces or special characters.
* **Default Value:** `"` (double quote)
* **Override:** Define a custom character using `quoteChar`.

* **dropOriginal**
* **Description:** Drops the original log message after parsing. Useful for reducing log storage.
* **Default Value:** `true`
* **Override:** Set `dropOriginal` to `false` to retain the original log message.

* **noPrefix**
* **Description:** When `true`, excludes Grok field name as a prefix in the resulting object.
* **Default Value:** `false`
* **Override:** Enable by setting `noPrefix` to `true`.

* **escapeChar**
* **Description:** Define a custom escape character to handle special log characters.
* **Default Value:** "\" (backslash)
* **Override:** Customize with `escapeChar`.

* **trimValues**
* **Description:** Allows trimming of values that contain whitespace.
* **Default Value:** `false`
* **Override:** Set `trimValues` to `true` to activate trimming.

* **trimKeys**
* **Description:** Allows trimming of keys that contain whitespace.
* **Default Value:** `true`
* **Override:** Set `trimKeys` to `true` to activate trimming.
</Collapser>
</CollapserGroup>

## Organizing by logtype [#type]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ freshnessValidatedDate: 2023-07-20
React Native
</TabsBarItem>

<TabsBarItem id="flutter">
Flutter
</TabsBarItem>

<TabsBarItem id="unity">
Unity
</TabsBarItem>
Expand Down Expand Up @@ -249,6 +253,62 @@ crashNow(options?: { message: string; } | undefined) => void
```typescript
NewRelicCapacitorPlugin.crashNow();
NewRelicCapacitorPlugin.crashNow({ message: "A demo crash message" });
```
</TabsPageItem>

<TabsPageItem id="flutter">
## Syntax [#syntax]

```dart
crashNow({String name}) : void ;
```

## Description [#description]

Throws a demo run-time exception on Android/iOS to test New Relic crash reporting.

## Parameters [#parameters]

<table>
<thead>
<tr>
<th width={200}>
Parameter
</th>

<th width={200}>
Type
</th>

<th>
Description
</th>
</tr>
</thead>

<tbody>
<tr>
<td>
`name`
</td>

<td>
`string`
</td>

<td>
Optional. A message attached to the exception.
</td>
</tr>
</tbody>
</table>

## Example [#example]

```dart
NewrelicMobile.instance.crashNow(name: "This is a crash");
NewrelicMobile.instance.crashNow();
```
</TabsPageItem>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,11 +263,32 @@ The problem sources are arranged by how common they are, with the most common be

This table is a problem matrix sorted by health data point:

| Data point | New Relic capability | Common problem sources |
| ---------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Output | APM, infra, logs, NPM | Application, data sources, hardware config change, infrastructure, internal networking, third party provider (AWS, GCP) |
| Input | Synthetic, logs | External routing (CDN, gateways, etc), internal routing, things on the internet (ISP, etc.) |
| Client | Browser, mobile | Browser or mobile code |
<table>
<thead>
<tr>
<th>Data point</th>
<th>New Relic capability</th>
<th>Common problem sources</th>
</tr>
</thead>
<tbody>
<tr>
<td>Output</td>
<td>APM, infra, logs, NPM</td>
<td>Application, data sources, hardware config change, infrastructure, internal networking, third party provider (AWS, GCP)</td>
</tr>
<tr>
<td>Input</td>
<td>Synthetic, logs</td>
<td>External routing (CDN, gateways, etc), internal routing, things on the internet (ISP, etc.)</td>
</tr>
<tr>
<td>Client</td>
<td>Browser, mobile</td>
<td>Browser or mobile code</td>
</tr>
</tbody>
</table>

Problems tend to be compounded but the goal is to "find the source" and then determine "what changed" in order to quickly restore service levels.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
subject: Infrastructure agent
releaseDate: '2025-01-08'
version: 1.59.1
---

A new version of the agent is now available. Follow standard procedures to [update the Infrastructure agent](https://docs.newrelic.com/docs/infrastructure/install-configure-manage-infrastructure/update-or-uninstall/update-infrastructure-agent).
New Relic recommends that you upgrade the agent and at a minimum every 3 months. As of this release, the oldest supported version is [Infrastructure agent 1.48.3](https://docs.newrelic.com/docs/release-notes/infrastructure-release-notes/infrastructure-agent-release-notes/new-relic-infrastructure-agent-1483/).

## Changed

* Bump golang.org/x/net to latest version in [#1971](https://github.com/newrelic/infrastructure-agent/pull/1971)
* chore(deps): update dependency newrelic/nri-flex to v1.16.3 in [#1972](https://github.com/newrelic/infrastructure-agent/pull/1972)
* chore(deps): update dependency newrelic/nri-prometheus to v2.23.0 in [#1974](https://github.com/newrelic/infrastructure-agent/pull/1974)
* chore(deps): update dependency newrelic/nri-docker to v2.2.0 in [#1973](https://github.com/newrelic/infrastructure-agent/pull/1973)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
subject: Logs
releaseDate: '2025-01-10'
version: '250110'
---

### New Feature: Key-Value Parsing with Grok

We are excited to introduce key-value parsing with Grok in our latest release. This feature allows you to extract key-value pairs from your logs more efficiently, enhancing your log management capabilities.

### Added

* **Key-Value Parsing with Grok**: You can now use Grok patterns to parse key-value pairs from your logs. This feature simplifies the extraction of structured data from unstructured log messages, making it easier to analyze and visualize your log data.

### Notes

To stay up to date with the most recent fixes and enhancements, subscribe to our [Logs RSS feed](/docs/release-notes/logs-release-notes/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
subject: Mobile app for Android
releaseDate: '2025-01-08'
version: 5.27.1
downloadLink: 'https://play.google.com/store/apps/details?id=com.newrelic.rpm'
---


### Enhancements
* Added events for enhanced app performance enhancement

### Fixes
* Bug fixes
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
subject: Browser agent
releaseDate: "2025-01-08"
version: 1.278.1
features: []
bugs: ["Make Metrics harvest only on EoL for new Harvester"]
security: []
---

## v1.278.1

### Bug fixes

#### Make Metrics harvest only on EoL for new Harvester
Prevent Metrics feature from harvesting on interval after changes in v1.278.0. This reverts its behavior back to sending only final harvests.

## Support statement

New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Older releases will no longer be supported when they reach [end-of-life](https://docs.newrelic.com/docs/browser/browser-monitoring/getting-started/browser-agent-eol-policy/). Release dates are reflective of the original publish date of the agent version.

New browser agent releases are rolled out to customers in small stages over a period of time. Because of this, the date the release becomes accessible to your account may not match the original publish date. Please see this [status dashboard](https://newrelic.github.io/newrelic-browser-agent-release/) for more information.

Consistent with our [browser support policy](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/compatibility-requirements-browser-monitoring/#browser-types), v1.278.1 of the Browser agent was built for and tested against these browsers and version ranges: Chrome 121-131, Edge 121-131, Safari 17-17, and Firefox 122-132. For mobile devices, v1.278.1 was built and tested for Android OS 15 and iOS Safari 17-18.1.
Loading

0 comments on commit 9b71f69

Please sign in to comment.