Skip to content

Naively increase the meta field char limit 50->500 #131478

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
95e0a9d
Naively increase the meta field char limit 50->500
seanstory Jul 17, 2025
560ffb9
[Inference Timeout] Supply inference context to all third party servi…
Samiul-TheSoccerFan Jul 17, 2025
decce56
ESQL: Unmuted fixed tests (#131476)
nik9000 Jul 17, 2025
7e7093a
Mute org.elasticsearch.xpack.esql.heap_attack.HeapAttackIT testLookup…
elasticsearchmachine Jul 17, 2025
a528ebb
Mute org.elasticsearch.test.rest.yaml.RcsCcsCommonYamlTestSuiteIT tes…
elasticsearchmachine Jul 17, 2025
d365412
Mute org.elasticsearch.packaging.test.DockerTests test050BasicApiTest…
elasticsearchmachine Jul 17, 2025
654d1f4
Add missing query params to index recovery API spec (#131490)
ywangd Jul 18, 2025
9edf9f6
Fix NPE in TimeSeriesExtractFieldOperator (#131497)
dnhatn Jul 18, 2025
a29d8ea
Mute org.elasticsearch.xpack.esql.action.EsqlActionBreakerIT testFrom…
elasticsearchmachine Jul 18, 2025
d637927
ESQL: Unmute some generative tests (#131446)
alex-spies Jul 18, 2025
3c11ab2
Mute org.elasticsearch.xpack.esql.qa.single_node.GenerativeIT test #1…
elasticsearchmachine Jul 18, 2025
db369bb
Disable entitlements for DirectIOIT, the suite requires delegation to…
mosche Jul 18, 2025
fb6e0c0
Mute org.elasticsearch.xpack.downsample.DownsampleWithBasicRestIT tes…
elasticsearchmachine Jul 18, 2025
9f22533
[TEST] Remove YAML Tests (#131434)
joshua-adams-1 Jul 18, 2025
8682c18
[ESQL] Fix TopN grouping aggregates bug with non-qualifying intermedi…
ivancea Jul 18, 2025
c9d5076
ES|QL: fix generative test (#131515)
luigidellaquila Jul 18, 2025
40585a2
Add checks that optimizers do not modify the layout (#130855)
julian-elastic Jul 18, 2025
439b8e6
ESQL: Split large pages on load sometimes (#131053)
nik9000 Jul 18, 2025
d70093b
ScoreTests capability check (#131516)
tteofili Jul 18, 2025
27a09d8
Upgrade apm-agent to 1.55.0 (#131510)
ldematte Jul 18, 2025
732bab0
Skip tests with TS command for non-snapshot builds (#131518)
kkrik-es Jul 18, 2025
06e39c0
ESQL: Disallow remote enrich after lu join (#131426)
alex-spies Jul 18, 2025
f5c6b35
Mute org.elasticsearch.xpack.search.CrossClusterAsyncSearchIT testCan…
elasticsearchmachine Jul 18, 2025
6543e50
Fix msearch rest-api-spec (#130627)
pquentin Jul 18, 2025
e67e50b
[DOCS][ESQL] Fix release version in Docs for RLIKE LIST (#131465)
julian-elastic Jul 18, 2025
efa71d7
Mute org.elasticsearch.xpack.downsample.DownsampleIT testAggMetricInE…
elasticsearchmachine Jul 18, 2025
a786c93
refactor: enhance semantic_text inference error msg (#131519)
mromaios Jul 18, 2025
929f65b
[Persistent Tasks] Assign based on ProjectId (#130391)
prwhelan Jul 18, 2025
90699d3
Fix semantic highlighting bug on flat quantized fields (#131525)
kderusso Jul 18, 2025
023b183
Adjust test to account for 500 char limit
seanstory Jul 18, 2025
0f00f69
Optimized path for single segment in TS source (#131502)
dnhatn Jul 18, 2025
330deba
Mute org.elasticsearch.xpack.esql.qa.multi_node.GenerativeIT test #13…
elasticsearchmachine Jul 18, 2025
a6d6d3e
Resharding: Route requests to source shard while target is pre-handof…
ankikuma Jul 18, 2025
feafb3a
[ML] Track inference deployments (#131442)
prwhelan Jul 18, 2025
be2f024
Revert "Put shards failure under a cap flag (#131371)" (#131542)
smalyshev Jul 18, 2025
1dc6bc0
Disable queryable built-in feature for smoke-test-plugins-ssl (#13152…
richard-dennehy Jul 18, 2025
f664cf5
Add proper Diff support for ProjectStateRegistry (#130917)
alexey-ivanov-es Jul 18, 2025
e8e758e
Added index setting for field meta character limit
seanstory Jul 18, 2025
e0c1a9b
[CI] Auto commit changes from spotless
Jul 18, 2025
bf6b065
Min val should be 0, restored deleted comment
seanstory Jul 18, 2025
5696924
Merge branch 'seanstory/increase-mapping-field-meta-char-limit' of gi…
seanstory Jul 18, 2025
beb18a8
Add Llama support to Inference Plugin (#130092)
Jan-Kazlouski-elastic Jul 18, 2025
4f3a0b3
Move setting to MappterService
seanstory Jul 18, 2025
d5f4428
make it dynamic
seanstory Jul 18, 2025
dc96c36
otel-data: enable failure store for OTEL datastreams (#131395)
rubvs Jul 18, 2025
ac398e3
New Slow log troubleshooting video (#131557)
stefnestor Jul 18, 2025
668accc
Mute org.elasticsearch.action.admin.cluster.node.tasks.CancellableTas…
elasticsearchmachine Jul 18, 2025
74cd006
Remove redundant method for getting the remote cluster names (#130495)
JeremyDahlgren Jul 18, 2025
256a7fe
Skip downsample IT test with TS command when command not present (#13…
limotova Jul 19, 2025
3c914e1
Mute org.elasticsearch.xpack.esql.action.CrossClusterQueryWithPartial…
elasticsearchmachine Jul 19, 2025
a07e7e9
Mute org.elasticsearch.packaging.test.DockerTests test010Install #131376
elasticsearchmachine Jul 20, 2025
6dd4d67
Executing shard recovery in project context (#130525)
ywangd Jul 21, 2025
47bb535
[Test] Wait for expected master on all nodes (#131399)
ywangd Jul 21, 2025
b371590
Add shard write-load to cluster info (#131496)
nicktindall Jul 21, 2025
08cbdbc
Mute org.elasticsearch.test.rest.yaml.RcsCcsCommonYamlTestSuiteIT tes…
elasticsearchmachine Jul 21, 2025
a692cbd
Log failure in `internalSend` (#131418)
DaveCTurner Jul 21, 2025
888e9a2
Document read-after-write semantics for `getRegister` (#131522)
DaveCTurner Jul 21, 2025
bc0c189
Tests: Add logging to FieldSortIT (#131558)
cbuescher Jul 21, 2025
93640e7
Mute org.elasticsearch.compute.lucene.read.SortedSetOrdinalsBuilderTe…
elasticsearchmachine Jul 21, 2025
b4a455d
Clarify heap size configuration (#131607)
DaveCTurner Jul 21, 2025
feb0b8f
update `kibana_system` to grant it access to `.chat-*` system index (…
pgayvallet Jul 21, 2025
aa77c4a
ESQL: Added Sample operator NamedWritable to plugin (#131541)
ivancea Jul 21, 2025
0eca703
Update index mapping update privileges (#130894)
charlotte-hoblik Jul 21, 2025
9db4361
ES|QL: Improve generative tests for FORK [130015] (#131206)
svilen-mihaylov-elastic Jul 21, 2025
c666679
ESQL: Add asynchronous pre-optimization step for logical plan (#131440)
afoucret Jul 21, 2025
d5f6cbc
Naively increase the meta field char limit 50->500
seanstory Jul 17, 2025
27c54ab
Adjust test to account for 500 char limit
seanstory Jul 18, 2025
1f65597
Added index setting for field meta character limit
seanstory Jul 18, 2025
4282385
Min val should be 0, restored deleted comment
seanstory Jul 18, 2025
a4f345b
[CI] Auto commit changes from spotless
Jul 18, 2025
b3589a4
Move setting to MappterService
seanstory Jul 18, 2025
460fe79
make it dynamic
seanstory Jul 18, 2025
c6c1762
remove commented-out line
seanstory Jul 21, 2025
c5e25fa
Merge branch 'seanstory/increase-mapping-field-meta-char-limit' of gi…
seanstory Jul 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 2 additions & 3 deletions benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,10 @@ exit
Grab the async profiler from https://github.com/jvm-profiling-tools/async-profiler
and run `prof async` like so:
```
gradlew -p benchmarks/ run --args 'LongKeyedBucketOrdsBenchmark.multiBucket -prof "async:libPath=/home/nik9000/Downloads/async-profiler-3.0-29ee888-linux-x64/lib/libasyncProfiler.so;dir=/tmp/prof;output=flamegraph"'
gradlew -p benchmarks/ run --args 'LongKeyedBucketOrdsBenchmark.multiBucket -prof "async:libPath=/home/nik9000/Downloads/async-profiler-4.0-linux-x64/lib/libasyncProfiler.so;dir=/tmp/prof;output=flamegraph"'
```

Note: As of January 2025 the latest release of async profiler doesn't work
with our JDK but the nightly is fine.
Note: As of July 2025 the 4.0 release of the async profiler works well.

If you are on Mac, this'll warn you that you downloaded the shared library from
the internet. You'll need to go to settings and allow it to run.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.NumericUtils;
import org.elasticsearch.common.breaker.NoopCircuitBreaker;
import org.elasticsearch.common.logging.LogConfigurator;
import org.elasticsearch.common.lucene.Lucene;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.compute.data.BlockFactory;
import org.elasticsearch.compute.data.BytesRefBlock;
Expand Down Expand Up @@ -85,6 +87,10 @@
@State(Scope.Thread)
@Fork(1)
public class ValuesSourceReaderBenchmark {
static {
LogConfigurator.configureESLogging();
}

private static final String[] SUPPORTED_LAYOUTS = new String[] { "in_order", "shuffled", "shuffled_singles" };
private static final String[] SUPPORTED_NAMES = new String[] {
"long",
Expand Down Expand Up @@ -345,6 +351,7 @@ public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() {
public void benchmark() {
ValuesSourceReaderOperator op = new ValuesSourceReaderOperator(
blockFactory,
ByteSizeValue.ofMb(1).getBytes(),
fields(name),
List.of(new ValuesSourceReaderOperator.ShardContext(reader, () -> {
throw new UnsupportedOperationException("can't load _source here");
Expand Down
5 changes: 5 additions & 0 deletions docs/changelog/130092.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 130092
summary: "Added Llama provider support to the Inference Plugin"
area: Machine Learning
type: enhancement
issues: []
6 changes: 6 additions & 0 deletions docs/changelog/130855.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 130855
summary: Add checks that optimizers do not modify the layout
area: ES|QL
type: enhancement
issues:
- 125576
5 changes: 5 additions & 0 deletions docs/changelog/131053.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 131053
summary: Split large pages on load sometimes
area: ES|QL
type: bug
issues: []
5 changes: 5 additions & 0 deletions docs/changelog/131395.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 131395
summary: Enable failure store for newly created OTel data streams
area: Data streams
type: enhancement
issues: []
6 changes: 6 additions & 0 deletions docs/changelog/131426.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 131426
summary: Disallow remote enrich after lu join
area: ES|QL
type: bug
issues:
- 129372
5 changes: 5 additions & 0 deletions docs/changelog/131442.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 131442
summary: Track inference deployments
area: Machine Learning
type: enhancement
issues: []
5 changes: 5 additions & 0 deletions docs/changelog/131510.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 131510
summary: Upgrade apm-agent to 1.55.0
area: Infra/Metrics
type: upgrade
issues: []
6 changes: 6 additions & 0 deletions docs/changelog/131525.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 131525
summary: Fix semantic highlighting bug on flat quantized fields
area: Highlighting
type: bug
issues:
- 131443
5 changes: 5 additions & 0 deletions docs/changelog/131541.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 131541
summary: Added Sample operator `NamedWritable` to plugin
area: ES|QL
type: bug
issues: []
1 change: 1 addition & 0 deletions docs/reference/elasticsearch/index-settings/slow-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Events that meet the specified threshold are emitted into [{{es}} logging](docs-
* If [{{es}} monitoring](docs-content://deploy-manage/monitor/stack-monitoring.md) is enabled, from [Stack Monitoring](docs-content://deploy-manage/monitor/monitoring-data/visualizing-monitoring-data.md). Slow log events have a `logger` value of `index.search.slowlog` or `index.indexing.slowlog`.
* From local {{es}} service logs directory. Slow log files have a suffix of `_index_search_slowlog.json` or `_index_indexing_slowlog.json`.

See this [this video](https://www.youtube.com/watch?v=ulUPJshB5bU) for a walkthrough of setting and reviewing slow logs.

## Slow log format [slow-log-format]

Expand Down
12 changes: 10 additions & 2 deletions docs/reference/elasticsearch/jvm-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,18 @@ To override the default heap size, set the minimum and maximum heap size setting

The heap size should be based on the available RAM:

* Set `Xms` and `Xmx` to no more than 50% of your total memory. {{es}} requires memory for purposes other than the JVM heap. For example, {{es}} uses off-heap buffers for efficient network communication and relies on the operating system’s filesystem cache for efficient access to files. The JVM itself also requires some memory. It’s normal for {{es}} to use more memory than the limit configured with the `Xmx` setting.
* Set `Xms` and `Xmx` to no more than 50% of the total memory available to each {{es}} node. {{es}} requires memory for purposes other than the JVM heap. For example, {{es}} uses off-heap buffers for efficient network communication and relies on the operating system’s filesystem cache for efficient access to files. The JVM itself also requires some memory. It’s normal for {{es}} to use more memory than the limit configured with the `Xmx` setting.

::::{note}
When running in a container, such as [Docker](docs-content://deploy-manage/deploy/self-managed/install-elasticsearch-with-docker.md), total memory is defined as the amount of memory visible to the container, not the total system memory on the host.
When running in a container, such as [Docker](docs-content://deploy-manage/deploy/self-managed/install-elasticsearch-with-docker.md), the total memory available to {{es}} means the amount of memory available within the container, not the total system memory on the host.

If you are running multiple {{es}} nodes on the same host, or in the same container, the total of all the nodes' heap sizes should not exceed 50% of the total available memory.

Account for the memory usage of other processes running on the same host, or in the same container, when computing the total memory available to {{es}}.

The 50% guideline is intended as a safe upper bound on the heap size. You may find that heap sizes smaller than this maximum offer better performance, for instance by allowing your operating system to use a larger filesystem cache.

If you set the heap size too large, {{es}} may perform poorly and nodes may be terminated by the operating system.
::::

* Set `Xms` and `Xmx` to no more than the threshold for compressed ordinary object pointers (oops). The exact threshold varies but 26GB is safe on most systems and can be as large as 30GB on some systems. To verify you are under the threshold, check the {{es}} log for an entry like this:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ PUT my-index-000001
```

::::{note}
Field metadata enforces at most 5 entries, that keys have a length that is less than or equal to 20, and that values are strings whose length is less than or equal to 50.
Field metadata enforces at most 5 entries, that keys have a length that is less than or equal to 20, and that values are strings whose length is less than or equal to 500.
The value limit is configurable, with the index setting: `index.mapping.meta.length_limit`.
::::


Expand Down
32 changes: 20 additions & 12 deletions docs/reference/elasticsearch/security-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,22 +286,20 @@ This section lists the privileges that you can assign to a role.
`create`
: Privilege to index documents.

:::{admonition} Deprecated in 8.0
Also grants the permission to update the index mapping (but not the data streams mapping), using the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or by relying on [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md). In a future major release, this privilege will not grant any mapping update permissions.
:::

::::{note}
This privilege does not restrict the index operation to the creation of documents but instead restricts API use to the index API. The index API allows a user to overwrite a previously indexed document. See the `create_doc` privilege for an alternative.
::::

:::{important}
Starting from 8.0, this privilege no longer grants the permission to update index mappings.
In earlier versions, it implicitly permitted index mapping updates (excluding data stream mappings) via the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or through [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md).
Mapping update capabilities will be fully removed in a future major release.
:::


`create_doc`
: Privilege to index documents. It does not grant the permission to update or overwrite existing documents.

:::{admonition} Deprecated in 8.0
Also grants the permission to update the index mapping (but not the data streams mapping), using the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or by relying on [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md). In a future major release, this privilege will not grant any mapping update permissions.
:::

::::{note}
This privilege relies on the `op_type` of indexing requests ([Index](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-create) and [Bulk](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-bulk)). When ingesting documents as a user who has the `create_doc` privilege (and no higher privilege such as `index` or `write`), you must ensure that *op_type* is set to *create* through one of the following:

Expand All @@ -311,6 +309,12 @@ This section lists the privileges that you can assign to a role.

::::

:::{important}
Starting from 8.0, this privilege no longer grants the permission to update index mappings.
In earlier versions, it implicitly permitted index mapping updates (excluding data stream mappings) via the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or through [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md).
Mapping update capabilities will be fully removed in a future major release.
:::


`create_index`
: Privilege to create an index or data stream. A create index request may contain aliases to be added to the index once created. In that case the request requires the `manage` privilege as well, on both the index and the aliases names.
Expand Down Expand Up @@ -340,8 +344,10 @@ This section lists the privileges that you can assign to a role.
`index`
: Privilege to index and update documents.

:::{admonition} Deprecated in 8.0
Also grants the permission to update the index mapping (but not the data streams mapping), using the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or by relying on [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md). In a future major release, this privilege will not grant any mapping update permissions.
:::{important}
Starting from 8.0, this privilege no longer grants the permission to update index mappings.
In earlier versions, it implicitly permitted index mapping updates (excluding data stream mappings) via the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or through [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md).
Mapping update capabilities will be fully removed in a future major release.
:::

`maintenance`
Expand Down Expand Up @@ -389,8 +395,10 @@ This section lists the privileges that you can assign to a role.
`write`
: Privilege to perform all write operations to documents, which includes the permission to index, update, and delete documents as well as performing bulk operations, while also allowing to dynamically update the index mapping.

:::{admonition} Deprecated in 8.0
It also grants the permission to update the index mapping (but not the data streams mapping), using the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping). This will be retracted in a future major release.
:::{important}
Starting from 8.0, this privilege no longer grants the permission to update index mappings.
In earlier versions, it implicitly permitted index mapping updates (excluding data stream mappings) via the [updating mapping API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-mapping) or through [dynamic field mapping](docs-content://manage-data/data-store/mapping/dynamic-mapping.md).
Mapping update capabilities will be fully removed in a future major release.
:::

## Run as privilege [_run_as_privilege]
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ROW message = "foo ( bar"
```

```{applies_to}
stack: ga 9.1
stack: ga 9.2
serverless: ga
```

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@
<sha256 value="10fe288fd7a2cdaf5175332b73529f9abf8fd54dcfff317d6967c0c35ffb133b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="co.elastic.apm" name="elastic-apm-agent" version="1.52.2">
<artifact name="elastic-apm-agent-1.52.2.jar">
<sha256 value="dee18355a06f66a425bd597d6447ccbe7e8b7a3c0667adb7b30da173e31044e0" origin="Generated by Gradle"/>
<component group="co.elastic.apm" name="elastic-apm-agent" version="1.55.0">
<artifact name="elastic-apm-agent-1.55.0.jar">
<sha256 value="3cbba96a64593c14568399dbc816fc36a5647e39449e1d4cf1eedce9880a9d3e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="co.elastic.logging" name="ecs-logging-core" version="1.2.0">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,27 @@ public <T> void declareField(BiConsumer<Value, T> consumer, ContextParser<Contex
}
}

/**
* Declare a field that is an array of objects or null. Used to avoid calling the consumer when used with
* {@link #optionalConstructorArg()} or {@link #constructorArg()}.
* @param consumer Consumer that will be passed as is to the {@link #declareField(BiConsumer, ContextParser, ParseField, ValueType)}.
* @param objectParser Parser that will parse the objects in the array, checking for nulls.
* @param field Field to declare.
*/
@Override
public <T> void declareObjectArrayOrNull(
BiConsumer<Value, List<T>> consumer,
ContextParser<Context, T> objectParser,
ParseField field
) {
declareField(
consumer,
(p, c) -> p.currentToken() == XContentParser.Token.VALUE_NULL ? null : parseArray(p, c, objectParser),
field,
ValueType.OBJECT_ARRAY_OR_NULL
);
}

@Override
public <T> void declareNamedObject(
BiConsumer<Value, T> consumer,
Expand Down
2 changes: 1 addition & 1 deletion modules/apm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ dependencies {
implementation "io.opentelemetry:opentelemetry-api:${otelVersion}"
implementation "io.opentelemetry:opentelemetry-context:${otelVersion}"
implementation "io.opentelemetry:opentelemetry-semconv:${otelSemconvVersion}"
runtimeOnly "co.elastic.apm:elastic-apm-agent:1.52.2"
runtimeOnly "co.elastic.apm:elastic-apm-agent:1.55.0"

javaRestTestImplementation project(':modules:apm')
javaRestTestImplementation project(':test:framework')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@ public class KibanaPlugin extends Plugin implements SystemIndexPlugin {
.setAllowedElasticProductOrigins(KIBANA_PRODUCT_ORIGIN)
.build();

public static final SystemIndexDescriptor ONECHAT_INDEX_DESCRIPTOR = SystemIndexDescriptor.builder()
.setIndexPattern(".chat-*")
.setDescription("Onechat system index")
.setType(Type.EXTERNAL_UNMANAGED)
.setAllowedElasticProductOrigins(KIBANA_PRODUCT_ORIGIN)
.build();

public static final SystemIndexDescriptor APM_AGENT_CONFIG_INDEX_DESCRIPTOR = SystemIndexDescriptor.builder()
.setIndexPattern(".apm-agent-configuration*")
.setDescription("system index for APM agent configuration")
Expand All @@ -57,6 +64,7 @@ public Collection<SystemIndexDescriptor> getSystemIndexDescriptors(Settings sett
return List.of(
KIBANA_INDEX_DESCRIPTOR,
REPORTING_INDEX_DESCRIPTOR,
ONECHAT_INDEX_DESCRIPTOR,
APM_AGENT_CONFIG_INDEX_DESCRIPTOR,
APM_CUSTOM_LINK_INDEX_DESCRIPTOR
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class KibanaPluginTests extends ESTestCase {
public void testKibanaIndexNames() {
assertThat(
new KibanaPlugin().getSystemIndexDescriptors(Settings.EMPTY).stream().map(SystemIndexDescriptor::getIndexPattern).toList(),
contains(".kibana_*", ".reporting-*", ".apm-agent-configuration*", ".apm-custom-link*")
contains(".kibana_*", ".reporting-*", ".chat-*", ".apm-agent-configuration*", ".apm-custom-link*")
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,13 @@ void run(BytesReference expected, BytesReference updated, ActionListener<Optiona

.<Void>newForked(l -> ensureOtherUploadsComplete(uploadId, uploadIndex, currentUploads, l))

// Step 4: Read the current register value.
// Step 4: Read the current register value. Note that getRegister only has read-after-write semantics but that's ok here as:
// - all earlier uploads are now complete,
// - our upload is not completing yet, and
// - later uploads can only be completing if they have already aborted ours.
// Thus if our operation ultimately succeeds then there cannot have been any concurrent writes in flight, so this read
// cannot have observed a stale value, whereas if our operation ultimately fails then it doesn't matter what this read
// observes.

.<OptionalBytesReference>andThen(l -> getRegister(purpose, rawKey, l))

Expand Down
Loading
Loading