.net 对接 opentelemetry logs

OpenTelemetry 简介 OpenTelemetry 是一个由 CNCF(Cloud Native Computing Foundation)托管的开源项目,旨在为观察性(Observability)提供一套全面的工具,包括度量(Metrics)、日志(Logs)和追踪(Traces)。它的目标是为所有类型的遥测数据提供一种标准化的方法。 OpenTelemetry 提供了一套 API 和 SDK,使得开发者可以在他们的应用程序中生成和收集遥测数据。此外,OpenTelemetry 还提供了一套收集器(Collector),可以接收、处理和导出遥测数据,以便于后续的分析和可视化。 本文不是用来介绍 OpenTelemetry 的,所以更多的细节就不提了。 OpenTelemetry 的优点 OpenTelemetry 的主要优点是其广泛的兼容性和灵活性。它支持多种编程语言,包括 Java、Python、Go、JavaScript 和 .NET 等。此外,它还可以与多种后端服务进行集成,包括但不限于 Prometheus、Jaeger、Zipkin 和 Grafana 等。 Otlp 总的来说 OpenTelemetry 最大的优点是他的 “标准化”。在数字的世界里,标准才是王道,比如 TCP, Http。OpenTelemetry 定义了 Otlp(OpenTelemetry Protocol) 协议。通过 Otlp 对接其他组件。因为大家都知道市面上做观测的产品有很多,有 Elastic APM 这种全家桶,有专注于 Traceing 的 Jaeger,有专注日志的 loki 跟... [Read More]

使用 testcontainers 进行数据库集成测试

在软件开发过程中,集成测试是至关重要的一环。它确保不同组件之间的协作正常,并验证系统在整体上的功能和性能。然而,传统的集成测试往往需要依赖于外部资源,如数据库、消息队列等,这给测试环境的搭建和维护带来了一定的挑战。 为了解决这个问题,我们可以使用 TestContainers 这个强大的开源工具。TestContainers 提供了一种简单而强大的方式来管理和运行容器化的测试环境。它支持多种容器化技术,如 Docker、Kubernetes 等,并且可以与各种编程语言和测试框架集成。 什么是 TestContainers? TestContainers 是一个用于集成测试的开源工具,它的目标是简化集成测试中的容器管理。它提供了一套简洁的 API,可以轻松地创建、启动和销毁容器。通过使用 TestContainers,我们可以在测试中使用真实的容器化环境,而无需手动安装和配置外部资源。 TestContainers 的优势 使用 TestContainers 进行集成测试有以下几个优势: 简化环境搭建 TestContainers 可以自动下载和启动所需的容器镜像,无需手动安装和配置外部资源。这样,我们可以快速搭建测试环境,减少了环境搭建的时间和工作量。 隔离性和可重复性 每个测试用例都可以在独立的容器中运行,确保了测试的隔离性和可重复性。每次测试运行时,TestContainers 都会为每个测试用例创建一个新的容器实例,避免了测试之间的相互影响。 真实环境测试 通过使用真实的容器化环境,我们可以更准确地模拟生产环境,并进行真实环境下的集成测试。这有助于发现潜在的问题和缺陷,并提高系统的稳定性和可靠性。 [Read More]

Agileconfig 1.9.0 发布,支持 mongodb 数据库

Hello 大家好,先祝福大家新年快乐。🎉🎉🎉 AgileConfig 1.9.0 版本终于赶在农历年前发布了。 Mongodb 当前做为一款非常成熟的 Nosql 产品,已经有越来越多的产品或项目基于它来构建。在 AgileConfig 开源的这几年之间,陆陆续续收到不少同学问为啥不支持 Mongodb。我的回答是没有时间(懒)。一是因为确实没有时间,二是要支持 Mongodb 这种非关系型数据库,需要对 AgileConfig 项目本身做比较大的重构。就在去年 12 月 AgileConfig 收到了对于 Mongodb 的支持的 PR。这是 AgileConfig 开源这几年来收到的一个最大的 PR。往常大家都是嘴上说要这个,要那个功能,但是真正动手的聊聊无几,收到这个 PR 的时候让我非常欣慰。 这个 PR 当时虽然能工作,但是不够完美。在我跟 pengqian089 同学多次沟通后决定对 AgileConfig 进行一次比较大的重构:在 RDB 与 Nosql 之间在抽象一层仓储层。这样对与后续扩展不管是 RDB 还是其他 Nosql 会更加的容易。同时为了保证项目的可靠性,我们还改进跟添加了更多的单元测试用例。我们共同合作 2 个多月,修改了超过 170 个文件,终于有了当前这个新版本。 如何使用 Mongodb 作为存储... [Read More]