Comments (7)
Good point, the functionality used at the moment to interact with ES is relatively small, mostly sending data to it (events and the template). Low coupling would certainly be good, the recent upgrade we did fixed the ES 2 compatibility but dropped ES 1 support due to libraries. So certainly interesting to find out if possible. Maybe @Mpdreamz has some feedback/tips?
from serilog-sinks-elasticsearch.
I'd be +1 on internalising the LowLevel client through ILMerge or something similar.
ES 2.x introduced formatted structured error responses and Elasticsearch.Net supports it. The LowLevel client most likely still "works" against 1.x but we do not test this on our CI and thus do not support it. There will always be a chance where Elasticsearch itself introduces a breaking change in serilog's footprint, using the client or not :)
Also the connectivity bits are not easy to reimplemented IMO and is something we test extensively it be a mistake to split efforts here.
But yeah huge +1 to ILMerge.
from serilog-sinks-elasticsearch.
In fact Elasticsearch 5.0 will break the template and we need to bump majors again :D
from serilog-sinks-elasticsearch.
Thanks for your feedback. IL merging it would certainly be an option. Or we need to drop support for the connectivity part, keep the sink pretty simple and just post json to the ES index. Hard to imagine that this will change in new versions. However that removes a lot of functionality from the sink which is also not optimal and desirable.
And ES 5? Skipping some versions in between?
from serilog-sinks-elasticsearch.
The configuration class ElasticsearchSinkOptions
has a property Serializer
of Elasticsearch.Net.Serialization.IElasticsearchSerializer
from the package Elasticsearch.Net
. Thus, the ILMerged client won't really help because the low-level client stuff is not encapsulated within the lib it will still impose this dependency to the client.
This construct really makes the things much more complex than seemed. If we agree that we can use raw HTTP Post to the _bulk endpoint, then we will have to split this lib into the two separated libs, introduce some abstract client to keep the client applications working after the upgrade. The primary package won't use any dependencies and the second package will hide all the ES low-level client stuff.
from serilog-sinks-elasticsearch.
It will certainly be a breaking change that might even warrant to be a new sink all together. A lightweight ES Serilog sink that uses no external libraries to send data to ES. Might not have the connection capabilities or serialization support, but just uses the batched endpoint to send the data. It might be hard to get it in this sink without breaking too much, but a fork of this one can be possible. Is that an option to explore?
from serilog-sinks-elasticsearch.
Old issue, cleaning up
from serilog-sinks-elasticsearch.
Related Issues (20)
- v9.0.0 fails template creation with ES v7 with ElasticsearchClientException HOT 3
- v. 9.0.0 - ElasticsearchClientException: Could not authenticate with the specified node HOT 1
- Add autogenerated template IndexAliases configuration properties HOT 2
- Possible clock issue?
- The ES7 template registration throw an exception HOT 1
- New version 9.0.3 doesn't work with Logstash HOT 1
- The client noticed that the server is not a supported distribution of Elasticsearch. HOT 1
- 9.0.3 did not bring in changes from 9.0.2 HOT 2
- Unable to connect and write logs to Elasticsearch v8.8.1 HOT 3
- Unable to upload logs to Elastic Search Cloud HOT 1
- Unable to send logs to OpenTelemetry backend (using Serilog in .Net framework 4.8)
- How can i add a custom Id to es with Serilog.Sinks.Elasticsearch
- Support the new TraceId and SpanId in Serilog HOT 1
- Add Support for OpenSearch.
- How do I update Dotnet Serilog Logging Config to Deal with new Elastic 8 security (https, username, password, tls cert)? HOT 1
- Enable configuration of IndexDecider also from a config file
- serilog.sinks.elasticsearch is missing NuGet package README file
- Not Load Type
- Serilog.Sinks.Elasticsearch 10.0.0 don't works with Serilog.Sinks.MariaDB 1.0.1
- Future of this sink HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from serilog-sinks-elasticsearch.