skywalking9.3.0源码中涉及到数据持久化到es7数据库的方法有哪些 具体流程是怎样的
时间: 2024-06-11 13:06:02 浏览: 82
在 SkyWalking 9.3.0 中,涉及到数据持久化到 Elasticsearch 7 数据库的方法主要有以下几个:
1. Span 持久化到 Elasticsearch:在 skywalking-storage-query 模块的 org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.dao.ElasticSearch7SpanQueryDAO 类中实现。具体流程为,将 Span 对象转换为 Elasticsearch 中的文档格式,然后使用 Elasticsearch 的 Bulk API 批量写入到 Elasticsearch 中。
2. Trace 持久化到 Elasticsearch:在 skywalking-storage-query 模块的 org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.dao.ElasticSearch7TraceQueryDAO 类中实现。具体流程为,将 Trace 对象转换为 Elasticsearch 中的文档格式,然后使用 Elasticsearch 的 Bulk API 批量写入到 Elasticsearch 中。
3. Service 持久化到 Elasticsearch:在 skywalking-storage-query 模块的 org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.dao.ElasticSearch7ServiceQueryDAO 类中实现。具体流程为,将 Service 对象转换为 Elasticsearch 中的文档格式,然后使用 Elasticsearch 的 Index API 写入到 Elasticsearch 中。
4. Endpoint 持久化到 Elasticsearch:在 skywalking-storage-query 模块的 org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.dao.ElasticSearch7EndpointQueryDAO 类中实现。具体流程为,将 Endpoint 对象转换为 Elasticsearch 中的文档格式,然后使用 Elasticsearch 的 Index API 写入到 Elasticsearch 中。
总体来说,数据持久化到 Elasticsearch 的流程为:先将需要持久化的数据转换为 Elasticsearch 中的文档格式,然后使用 Elasticsearch 提供的 API 进行写入操作。其中,Span 和 Trace 的写入使用了 Elasticsearch 的批量写入 API,而 Service 和 Endpoint 的写入使用了 Elasticsearch 的单个文档写入 API。
阅读全文