# IRPCMonitoringDatapointsSink.PushDatapointsForIndexingEnd

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/

Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`

Stores the data points of the end of an indexing batch: timing, item counts and failures.

- **Service:** [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `MFiles.IRPCMonitoringDatapointsSink`
- **gRPC method:** `/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/push-datapoints-for-indexing-end`
- **Request:** [`PushDatapointsForIndexingEndRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md#request)
- **Response:** [`PushDatapointsForIndexingEndResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

**For M-Files components only.** The M-Files indexing service calls it. Applications should not
call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`) and the
  vault rights `change_metadata_structure`, `see_all_objects` and `license_allows_modifications`.

<a id="request"></a>

## Request: PushDatapointsForIndexingEndRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `source` | [`MonitoringSourceForIndexing`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringSourceForIndexing/index.md) | The monitoring data source. |
| `source.index` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index associated with the monitoring data. |
| `source.index.configuration_name` | `string` | The name of the index configuration. |
| `source.index.repository_connection` | `string` | Identifies the external repository connection. |
| `source.index.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `source.auxiliary_indexer_id` | `string` | If set, identifies auxiliary indexer associated with the monitoring data. |
| `source.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies the partition associated with the monitoring data. |
| `source.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `source.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `datapoints` | [`MonitoringDatapointsForIndexingEnd`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringDatapointsForIndexingEnd/index.md) | The monitoring datapoints. |
| `datapoints.batch_mode` | [`IndexingMode`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexingMode/index.md) | If not eimUnknown, identifies the current indexing mode. Values: `INDEXING_MODE_UNKNOWN` (0), `INDEXING_MODE_IDLE` (1), `INDEXING_MODE_NORMAL` (2), `INDEXING_MODE_DESTRUCTIONS` (3), `INDEXING_MODE_REBUILD_NORMAL` (4), `INDEXING_MODE_REBUILD_DESTRUCTIONS` (5), `INDEXING_MODE_RELEVANCE` (6), `INDEXING_MODE_ACL` (7). |
| `datapoints.batch_number` | `int32` | If not -1, specifies the current batch number (starting from 1). |
| `datapoints.batch_started_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the start time (in UTC) of the current indexing request batch. |
| `datapoints.batch_aborted_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not  a zero timestamp, identifies the abort time (in UTC) of the current indexing request batch. |
| `datapoints.batch_committed_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not  a zero timestamp, identifies the commit time (in UTC) of the current indexing request batch. |
| `datapoints.batch_duration_as_seconds` | `double` | If not 0.0, specifies the successful indexing request batch duration as seconds. |
| `datapoints.batch_processed_items` | `int32` | If not -1, specifies the number of the items processed during the latest batch. |
| `datapoints.batch_processed_items_fi_fo` | `int32` | If not -1, specifies the number of the items processed in FiFo order during the latest batch. |
| `datapoints.batch_processed_items_li_fo` | `int32` | If not -1, specifies the number of the items processed in LiFo order during the latest batch. |
| `datapoints.batch_processed_subitems` | `int32` | If not -1, specifies the number of the subitems processed during the latest batch. |
| `datapoints.batch_failed_items` | `int32` | If not -1, specifies the number of the items failed during the latest batch. |
| `datapoints.batch_partial_items_with_failed_subitems` | `int32` | If not -1, specifies the number of the items with failed subitems during the latest batch. |
| `datapoints.batch_failed_subitems` | `int32` | If not -1, specifies the number of the subitems failed during the latest batch. |
| `datapoints.batch_excluded_items` | `int32` | If not -1, specifies the number of the items excluded during the latest batch. |
| `datapoints.batch_partial_items_with_excluded_subitems` | `int32` | If not -1, specifies the number of the items with excluded subitems during the latest batch. |
| `datapoints.batch_excluded_subitems` | `int32` | If not -1, specifies the number of the subitems excluded during the latest batch. |
| `datapoints.batch_latest_object_changed` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the latest ObjectChanged time (in UTC) of the current indexing request batch. |
| `datapoints.batch_earliest_object_changed` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the earliest ObjectChanged time (in UTC) of the current indexing request batch. |

<a id="response"></a>

## Response: PushDatapointsForIndexingEndResponse

No fields.
