apisix VS opentelemetry-go

Compare apisix vs opentelemetry-go and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
apisix opentelemetry-go
63 125
13,560 4,689
1.9% 3.6%
9.6 9.6
4 days ago 3 days ago
Lua Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

apisix

Posts with mentions or reviews of apisix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-14.
  • Apache APISIX plugin priority, a leaky abstraction?
    2 projects | dev.to | 14 Dec 2023
    The main issue is that priority is documented in the config-default.yaml file, while the phase is buried in the code. Worse, some plugins run across different phases. For example, let's check the proxy proxy-rewrite plugin and, more precisely, the functions defined there:
  • A "Tiny" APISIX Plugin
    4 projects | dev.to | 27 Nov 2023
    // references: // https://github.com/tetratelabs/proxy-wasm-go-sdk/tree/main/examples // https://github.com/apache/apisix/blob/master/t/wasm/ package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" "github.com/valyala/fastjson" ) func main() { proxywasm.SetVMContext(&vmContext{}) } // each plugin has its own VMContext. // it is responsible for creating multiple PluginContexts for each route. type vmContext struct { types.DefaultVMContext } // each route has its own PluginContext. // it corresponds to one instance of the plugin. func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type header struct { Name string Value string } type pluginContext struct { types.DefaultPluginContext Headers []header } func (ctx *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { data, err := proxywasm.GetPluginConfiguration() if err != nil { proxywasm.LogErrorf("error reading plugin configuration: %v", err) return types.OnPluginStartStatusFailed } var p fastjson.Parser v, err := p.ParseBytes(data) if err != nil { proxywasm.LogErrorf("error decoding plugin configuration: %v", err) return types.OnPluginStartStatusFailed } headers := v.GetArray("headers") ctx.Headers = make([]header, len(headers)) for i, hdr := range headers { ctx.Headers[i] = header{ Name: string(hdr.GetStringBytes("name")), Value: string(hdr.GetStringBytes("value")), } } return types.OnPluginStartStatusOK } // each HTTP request to a route has its own HTTPContext func (ctx *pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpContext{parent: ctx} } type httpContext struct { types.DefaultHttpContext parent *pluginContext } func (ctx *httpContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { plugin := ctx.parent for _, hdr := range plugin.Headers { proxywasm.ReplaceHttpResponseHeader(hdr.Name, hdr.Value) } return types.ActionContinue }
  • 10 Reasons for Choosing API7
    4 projects | dev.to | 20 Nov 2023
    API7 takes Apache APISIX as its robust foundation, which is open-source and has an active community with over 600 contributors all over the world. The nature of open source allows users to examine the source code, which promotes transparency. This transparency helps users understand how APISIX works, verify its security, and identify and fix any potential vulnerabilities or bugs.
  • How is Apache APISIX Fast?
    6 projects | dev.to | 13 Sep 2023
    But the best part is that the libraries mentioned here and Apache APISIX are entirely open source, meaning you can look under the hood and modify things yourself.
  • Custom Plugin Development For APISIX With Lua And ChatGPT
    5 projects | dev.to | 14 Jun 2023
    4. Plugin definition: It is a really important part of plugin implementation that we define as a table with properties for the version, priority, name, and schema. The name and schema are the plugin's name and schema defined earlier. The version and priority are used by APISIX to manage the plugin. The version typically refers to the version that is currently in use like API versioning. If you publish and update your plugin logic, it is going to be 1.1 (You can set any version you wish). But you need to be very careful in choosing priority. The priority field defines in which order and phase your plugin should be executed. For example, the 'ip-restriction' plugin, with a priority of 3000, will be executed before the 'example-plugin', which has a priority of 0. This is due to the higher priority value of the 'ip-restriction' plugin. If you're developing your own plugin, make sure that you followed the order of plugins not to mess up the order of existing plugins. You can check the order of existing plugins in the config-default.yaml file and open the Apache APISIX Plugin Development Guide to determine.
  • Your opinion on Kong
    4 projects | /r/devops | 22 Mar 2023
    Their use of etcd was a hard pass for me; I don't need more etcd in my life
  • The Ultimate Beginner’s Guide to Open Source Contribution
    12 projects | dev.to | 6 Dec 2022
    Apache APISIX Apache APISIX is an open source, dynamic, real-time, high-performance cloud native API gateway. APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more. Official website https://apisix.apache.org/ GitHub projects APISIX (the core): https://github.com/apache/apisix GitHub - apache/apisix: The Cloud-Native API Gateway GitHub - apache/apisix-dashboard: Dashboard for Apache APISIX GitHub - apache/apisix-website: Apache APISIX Website GitHub - apache/apisix-docker: the docker for Apache APISIX GitHub - apache/apisix-go-plugin-runner: Go Plugin Runner for APISIX GitHub - apache/apisix-java-plugin-runner: APISIX Plugin Runner in Java GitHub - apache/apisix-python-plugin-runner: Apache APISIX Python plugin runner GitHub - apache/apisix-helm-chart: Apache APISIX Helm Chart GitHub - apache/apisix-ingress-controller: ingress controller for K8s
  • A poor man's API
    9 projects | dev.to | 23 Nov 2022
    Grafana configuration. Most of it comes from the configuration provided by APISIX.
  • Apache Shenyu Project Graduates
    2 projects | news.ycombinator.com | 20 Sep 2022
  • Apache Apisix: Open-Source API Gateway and API Management Platform
    6 projects | news.ycombinator.com | 15 Sep 2022
    Indeed Many members in the Slack channel reported that they came to APISIX because its feature-rich, check its README, please: https://github.com/apache/apisix

opentelemetry-go

Posts with mentions or reviews of opentelemetry-go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-26.
  • Observability at KubeCon + CloudNativeCon Europe 2024 in Paris
    7 projects | dev.to | 26 Mar 2024
    OpenTelemetry
  • Enhancing API Observability Series (Part 3): Tracing
    3 projects | dev.to | 19 Mar 2024
    When choosing distributed tracing tools, considerations include your technology stack, business requirements, and monitoring complexity. Zipkin, SkyWalking, and OpenTelemetry are popular distributed tracing solutions, each with its unique features.
  • Open Telemetry: Observing and Monitoring Applications
    3 projects | dev.to | 7 Mar 2024
    While many programming languages provide robust support for Open Telemetry, this instance focuses on Golang. It's important to note that, in the current context, the logs SDK for Golang is not implemented. For future reference consult the list of supported languages and explore the Open Telemetry repositories. Always prioritize the main repository and its contrib repository, housing extensions and instrumentation libraries crucial to the Open Telemetry framework. Stay updated with the latest developments to ensure seamless integration and enhanced functionality.
  • Show HN: OneUptime – Self Hosted Open Source Datadog Alternative
    3 projects | news.ycombinator.com | 25 Feb 2024
    OneUptime (https://github.com/oneuptime/oneuptime) is the open-source alternative to DataDog. It's 100% free and you can self-host it on your VM / server / cloud or you can use SaaS at https://oneuptime.com

    NEW UPDATES (since we last posted to HN): We now support OpenTelemetry (https://opentelemetry.io/) natively which will help you to monitor, observe and debug any app, service, database or stack.

  • The Lord of Playwright: The Two Traces
    2 projects | dev.to | 8 Feb 2024
    OpenTelemetry is the fastest growing Cloud Native Computing Foundation (CNCF) project. It standardizes the instrumentation and collection of traces, metrics, and logs from applications, and is supported by all the major observability projects, languages, and tools. One standard to rule them all!
  • Observabilidade de microsserviços com OpenTelemetry e Amazon OpenSearch [Lab Session]
    3 projects | dev.to | 29 Jan 2024
    OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior. https://opentelemetry.io/
  • Sumo Logic and Tracetest: AI-Driven Observability Meets Testing
    2 projects | dev.to | 18 Jan 2024
    Tracetest uses your existing OpenTelemetry traces to power trace-based testing with assertions against your trace data at every point of the request transaction. You only need to point Tracetest to your existing trace data source, or send traces to Tracetest directly!
  • Integration Testing Vercel Serverless Functions with OpenTelemetry
    6 projects | dev.to | 9 Jan 2024
    OpenTelemetry, an open-source observability framework, is one such tool. It helps gather, process, and export data like traces, metrics, and logs. Traces are especially useful as they provide insights into how distributed systems perform by tracing requests across various services.
  • Transition to OpenTelemetry, enhanced policy testing, and more - Cerbos v0.32
    2 projects | dev.to | 1 Dec 2023
    Cerbos fully transitioned from OpenCensus to OpenTelemetry, a move that significantly boosts our metrics and tracing capabilities. This shift allows for more efficient integration with a variety of observability products supporting the OpenTelemetry protocol (OTLP) but also offers the flexibility to use push metrics and fine-tune trace sampling. With this update, configuration through the tracing block in Cerbos files is deprecated in favor of using OpenTelemetry environment variables.
  • The Power of Traces: Learn by Contributing to OpenTelemetry
    3 projects | dev.to | 15 Nov 2023
    OpenTelemetry is a powerful observability framework that enables the collection, analysis, and export of telemetry data from applications. It provides a standardized approach for instrumenting code, allowing developers to gain valuable insights into application performance and behavior. With OpenTelemetry, monitoring and troubleshooting systems, identifying bottlenecks, and optimizing application performance becomes easier.

What are some alternatives?

When comparing apisix and opentelemetry-go you can also consider the following projects:

Kong - 🦍 The Cloud-Native API Gateway and AI Gateway.

haproxy-lua-http - Simple Lua HTTP helper && client for use with HAProxy.

emissary - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

envoy - Cloud-native high-performance edge/middle/service proxy

lua-resty-auto-ssl - On the fly (and free) SSL registration and renewal inside OpenResty/nginx with Let's Encrypt.

tyk-operator - Tyk Operator for Kubernetes

gloo - The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy

easegress - A Cloud Native traffic orchestration system

docker-jitsi-meet - Jitsi Meet on Docker

Docker Compose - Define and run multi-container applications with Docker

NobleEngine - A li'l game engine for Playdate.

krakend-ce - KrakenD Community Edition: High-performance, stateless, declarative, API Gateway written in Go.