Elastic.Ingest.Elasticsearch 0.1.0
Elastic.Ingest.Elasticsearch
Elastic.Channels
implementations of BufferedChannelBase
that allows data to pushed to either indices or data streams
DataStreamChannel<TEvent>
A channel that specializes to writing data with a timestamp to Elasticsearch data streams. E.g given the following document.
public class TimeSeriesDocument
{
[JsonPropertyName("@timestamp")]
public DateTimeOffset Timestamp { get; set; }
[JsonPropertyName("message")]
public string Message { get; set; }
}
A channel can be created to push data to the logs-dotnet-default
data stream.
var dataStream = new DataStreamName("logs", "dotnet");
var bufferOptions = new BufferOptions { }
var options = new DataStreamChannelOptions<TimeSeriesDocument>(transport)
{
DataStream = dataStream,
BufferOptions = bufferOptions
};
var channel = new DataStreamChannel<TimeSeriesDocument>(options);
NOTE: read more about Elastic's data stream naming convention here: https://www.elastic.co/blog/an-introduction-to-the-elastic-data-stream-naming-scheme
we can now push data to Elasticsearch using the DataStreamChannel
var doc = new TimeSeriesDocument
{
Timestamp = DateTimeOffset.Now,
Message = "Hello World!",
}
channel.TryWrite(doc);
IndexChannel<TEvent>
A channel that specializes in writing catalog data to Elastic indices. Catalog data is typically data that has an id of sorts.
Given the following minimal document
public class CatalogDocument
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("created")]
public DateTimeOffset Created { get; set; }
}
We can create an IndexChannel<>
to push CatalogDocument
instances.
var options = new IndexChannelOptions<CatalogDocument>(transport)
{
IndexFormat = "catalog-data-{0:yyyy.MM.dd}",
BulkOperationIdLookup = c => c.Id,
TimestampLookup = c => c.Created,
};
var channel = new IndexChannel<CatalogDocument>(options);
now we can push data using:
var doc = new CatalogDocument
{
Created = date,
Title = "Hello World!",
Id = "hello-world"
}
channel.TryWrite(doc);
This will push data to catalog-data-2023.01.1
because TimestampLookup
yields Created
to IndexFormat
.
IndexFormat
can also simply be a fixed string to write to an Elasticsearch alias/index.
BulkOperationIdLookup
determines if the document should be pushed to Elasticsearch using a create
or index
operation.
Showing the top 20 packages that depend on Elastic.Ingest.Elasticsearch.
Packages | Downloads |
---|---|
Elastic.Ingest.Elasticsearch.CommonSchema
Package Description
|
7 |
Elastic.Ingest.Elasticsearch.CommonSchema
Package Description
|
8 |
Elastic.Ingest.Elasticsearch.CommonSchema
Package Description
|
9 |
Elastic.Ingest.Elasticsearch.CommonSchema
Package Description
|
10 |
Elastic.Ingest.Elasticsearch.CommonSchema
Package Description
|
12 |
.NET Standard 2.1
- Elastic.Ingest.Transport (>= 0.1.0)
Version | Downloads | Last updated |
---|---|---|
0.8.0 | 6 | 02/23/2025 |
0.7.5 | 8 | 01/01/2025 |
0.7.4 | 7 | 01/01/2025 |
0.7.3 | 7 | 01/01/2025 |
0.7.2 | 7 | 01/01/2025 |
0.7.1 | 7 | 01/01/2025 |
0.7.0 | 7 | 01/01/2025 |
0.6.0 | 7 | 01/01/2025 |
0.5.7 | 7 | 01/01/2025 |
0.5.6 | 7 | 01/01/2025 |
0.5.5 | 8 | 01/01/2025 |
0.5.4 | 7 | 01/01/2025 |
0.5.3 | 8 | 01/01/2025 |
0.5.2 | 8 | 01/01/2025 |
0.5.1 | 7 | 01/01/2025 |
0.5.0 | 7 | 01/01/2025 |
0.4.3 | 7 | 01/01/2025 |
0.4.2 | 7 | 01/01/2025 |
0.4.1 | 7 | 01/01/2025 |
0.4.0 | 7 | 01/01/2025 |
0.3.2 | 7 | 01/01/2025 |
0.3.1 | 8 | 01/01/2025 |
0.3.0 | 7 | 01/01/2025 |
0.2.2 | 7 | 01/01/2025 |
0.2.1 | 7 | 01/01/2025 |
0.2.0 | 8 | 01/01/2025 |
0.1.0 | 7 | 01/01/2025 |