diff --git a/.github/workflows/apps/gen_supported_versions_doc.go b/.github/workflows/apps/gen_supported_versions_doc.go index ad7752049d..a2a4102916 100644 --- a/.github/workflows/apps/gen_supported_versions_doc.go +++ b/.github/workflows/apps/gen_supported_versions_doc.go @@ -116,7 +116,7 @@ func main() { func fetchLatestVersion(module string) (string, error) { if _, ok := stdlibPackages[module]; ok { - return "-", nil + return "N/A", nil } ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) @@ -163,8 +163,8 @@ func getCurrentVersion(integrationName, modName string) (ModuleVersion, error) { if _, ok := stdlibPackages[integrationName]; ok { return ModuleVersion{ Name: integrationName, - MinVersion: "-", - MaxVersion: "-", + MinVersion: "N/A", + MaxVersion: "N/A", Repository: modName, isInstrumented: false, }, nil @@ -245,23 +245,59 @@ func fetchAllLatestVersions(modules []ModuleVersion) []ModuleVersion { } func writeMarkdownFile(modules []ModuleVersion, filePath string) error { - file, err := os.Create(filePath) - if err != nil { - return fmt.Errorf("error creating file: %v", err) - } - defer file.Close() - - fmt.Fprintln(file, "| Module | Integration | Minimum Version | Maximum Version | Auto-Instrumented |") - fmt.Fprintln(file, "|-------------|-----------------|-----------------|-----------------|-----------------|") - // Sort modules by name sort.Slice(modules, func(i, j int) bool { return modules[i].Name < modules[j].Name }) + maxColumnLength := []int{0, 0, 0, 0, 0} + + rows := [][]string{ + {"Module", "Datadog Integration", "Minimum Tested Version", "Maximum Tested Version", "Auto-Instrumented"}, + {"-", "-", "-", "-", "-"}, + } for _, mod := range modules { - if mod.Name != "" { - fmt.Fprintf(file, "| %s | %s | %s | %s | %t |\n", mod.Name, mod.Repository, mod.MinVersion, mod.MaxVersion, mod.isInstrumented) + rows = append(rows, []string{ + modWithPkgDevURL(mod.Repository, mod.Repository), + integrationWithPackageURL(mod.Name), + fmt.Sprintf("`%s`", mod.MinVersion), + fmt.Sprintf("`%s`", mod.MaxVersion), + boolToMarkdown(mod.isInstrumented), + }) + } + for _, row := range rows { + for i, col := range row { + if len(col) > maxColumnLength[i] { + maxColumnLength[i] = len(col) + } + } + } + for _, row := range rows { + for i, col := range row { + char := " " + if col == "-" { + char = "-" + } + if len(col) < maxColumnLength[i] { + row[i] = row[i] + strings.Repeat(char, maxColumnLength[i]-len(col)) + } + row[i] = char + row[i] + char + } + } + + file, err := os.Create(filePath) + if err != nil { + return fmt.Errorf("error creating file: %w", err) + } + defer func() { + if err := file.Close(); err != nil { + log.Printf("failed to closed file: %v\n", err) + } + }() + + for _, row := range rows { + if _, err := fmt.Fprintln(file, "|"+strings.Join(row, "|")+"|"); err != nil { + return fmt.Errorf("failed to write line: %w", err) } } return nil @@ -293,3 +329,19 @@ func runCommand(ctx context.Context, dir string, commandAndArgs ...string) ([]by } return b, nil } + +func integrationWithPackageURL(integrationName string) string { + modURL := fmt.Sprintf("github.com/DataDog/dd-trace-go/contrib/%s/v2", integrationName) + return modWithPkgDevURL("contrib/"+integrationName, modURL) +} + +func modWithPkgDevURL(name, modURL string) string { + return fmt.Sprintf("[%s](https://pkg.go.dev/%s)", name, modURL) +} + +func boolToMarkdown(val bool) string { + if val { + return ":white_check_mark:" + } + return " " +} diff --git a/contrib/supported_versions.md b/contrib/supported_versions.md index 9b95cf2ff3..e6b5a5a620 100644 --- a/contrib/supported_versions.md +++ b/contrib/supported_versions.md @@ -1,54 +1,54 @@ -| Module | Integration | Minimum Version | Maximum Version | Auto-Instrumented | -|-------------|-----------------|-----------------|-----------------|-----------------| -| 99designs/gqlgen | github.com/99designs/gqlgen | v0.17.36 | v0.17.63 | true | -| IBM/sarama | github.com/IBM/sarama | v1.40.0 | v1.45.0 | true | -| Shopify/sarama | github.com/Shopify/sarama | v1.38.1 | v1.45.0 | true | -| aws/aws-sdk-go | github.com/aws/aws-sdk-go | v1.44.327 | v1.55.5 | true | -| aws/aws-sdk-go-v2 | github.com/aws/aws-sdk-go-v2 | v1.20.3 | v1.32.8 | true | -| bradfitz/gomemcache | github.com/bradfitz/gomemcache | v0.0.0-20230611145640-acc696258285 | v0.0.0-20230905024940-24af94b03874 | false | -| cloud.google.com/go/pubsub.v1 | cloud.google.com/go/pubsub | v1.36.1 | v1.45.3 | true | -| confluentinc/confluent-kafka-go/kafka | github.com/confluentinc/confluent-kafka-go | v1.9.2 | v1.9.2 | false | -| confluentinc/confluent-kafka-go/kafka.v2 | github.com/confluentinc/confluent-kafka-go/v2 | v2.2.0 | v2.8.0 | false | -| database/sql | database/sql | - | - | true | -| dimfeld/httptreemux.v5 | github.com/dimfeld/httptreemux/v5 | v5.5.0 | v5.5.0 | false | -| elastic/go-elasticsearch.v6 | github.com/elastic/go-elasticsearch/v6 | v6.8.5 | v6.8.10 | true | -| emicklei/go-restful.v3 | github.com/emicklei/go-restful/v3 | v3.11.0 | v3.12.1 | false | -| envoyproxy/go-control-plane | github.com/envoyproxy/go-control-plane | v0.13.1 | v0.13.4 | false | -| gin-gonic/gin | github.com/gin-gonic/gin | v1.9.1 | v1.10.0 | true | -| globalsign/mgo | github.com/globalsign/mgo | v0.0.0-20181015135952-eeefdecb41b8 | v0.0.0-20181015135952-eeefdecb41b8 | false | -| go-chi/chi | github.com/go-chi/chi | v1.5.4 | v1.5.5 | true | -| go-chi/chi.v5 | github.com/go-chi/chi/v5 | v5.0.10 | v5.2.0 | true | -| go-pg/pg.v10 | github.com/go-pg/pg/v10 | v10.11.1 | v10.14.0 | false | -| go-redis/redis | github.com/go-redis/redis | v6.15.9+incompatible | v6.15.9+incompatible | false | -| go-redis/redis.v7 | github.com/go-redis/redis/v7 | v7.4.1 | v7.4.1 | true | -| go-redis/redis.v8 | github.com/go-redis/redis/v8 | v8.11.5 | v8.11.5 | true | -| go.mongodb.org/mongo-driver | go.mongodb.org/mongo-driver | v1.12.1 | v1.17.2 | false | -| gocql/gocql | github.com/gocql/gocql | v1.6.0 | v1.7.0 | true | -| gofiber/fiber.v2 | github.com/gofiber/fiber/v2 | v2.52.5 | v2.52.6 | true | -| gomodule/redigo | github.com/gomodule/redigo | v1.8.9 | v1.9.2 | false | -| google.golang.org/api | google.golang.org/api | v0.169.0 | v0.216.0 | false | -| google.golang.org/grpc | google.golang.org/grpc | v1.69.0 | v1.69.4 | true | -| gorilla/mux | github.com/gorilla/mux | v1.8.0 | v1.8.1 | true | -| gorm.io/gorm.v1 | gorm.io/gorm | v1.25.3 | v1.25.12 | true | -| graph-gophers/graphql-go | github.com/graph-gophers/graphql-go | v1.5.0 | v1.5.0 | true | -| graphql-go/graphql | github.com/graphql-go/graphql | v0.8.1 | v0.8.1 | true | -| hashicorp/consul | github.com/hashicorp/consul/api | v1.24.0 | v1.31.0 | false | -| hashicorp/vault | github.com/hashicorp/vault/api | v1.9.2 | v1.15.0 | true | -| jackc/pgx.v5 | github.com/jackc/pgx/v5 | v5.6.0 | v5.7.2 | true | -| jmoiron/sqlx | github.com/jmoiron/sqlx | v1.3.5 | v1.4.0 | false | -| julienschmidt/httprouter | github.com/julienschmidt/httprouter | v1.3.0 | v1.3.0 | true | -| k8s.io/client-go | k8s.io/client-go | v0.25.5 | v0.32.0 | true | -| labstack/echo.v4 | github.com/labstack/echo/v4 | v4.11.1 | v4.13.3 | true | -| log/slog | log/slog | - | - | true | -| miekg/dns | github.com/miekg/dns | v1.1.55 | v1.1.62 | false | -| net/http | net/http | - | - | true | -| olivere/elastic.v5 | gopkg.in/olivere/elastic.v5 | v5.0.84 | v5.0.86 | false | -| redis/go-redis.v9 | github.com/redis/go-redis/v9 | v9.1.0 | v9.7.0 | true | -| segmentio/kafka-go | github.com/segmentio/kafka-go | v0.4.42 | v0.4.47 | true | -| sirupsen/logrus | github.com/sirupsen/logrus | v1.9.3 | v1.9.3 | true | -| syndtr/goleveldb | github.com/syndtr/goleveldb | v1.0.1-0.20220721030215-126854af5e6d | v1.0.1-0.20220721030215-126854af5e6d | false | -| tidwall/buntdb | github.com/tidwall/buntdb | v1.3.0 | v1.3.2 | false | -| twitchtv/twirp | github.com/twitchtv/twirp | v8.1.3+incompatible | v8.1.3+incompatible | true | -| uptrace/bun | github.com/uptrace/bun | v1.1.17 | v1.2.8 | false | -| urfave/negroni | github.com/urfave/negroni | v1.0.0 | v1.0.0 | false | -| valyala/fasthttp | github.com/valyala/fasthttp | v1.51.0 | v1.58.0 | false | +| Module | Datadog Integration | Minimum Tested Version | Maximum Tested Version | Auto-Instrumented | +|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|----------------------------------------|--------------------| +| [github.com/99designs/gqlgen](https://pkg.go.dev/github.com/99designs/gqlgen) | [contrib/99designs/gqlgen](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/99designs/gqlgen/v2) | `v0.17.36` | `v0.17.63` | :white_check_mark: | +| [github.com/IBM/sarama](https://pkg.go.dev/github.com/IBM/sarama) | [contrib/IBM/sarama](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/IBM/sarama/v2) | `v1.40.0` | `v1.45.0` | :white_check_mark: | +| [github.com/Shopify/sarama](https://pkg.go.dev/github.com/Shopify/sarama) | [contrib/Shopify/sarama](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/Shopify/sarama/v2) | `v1.38.1` | `v1.45.0` | :white_check_mark: | +| [github.com/aws/aws-sdk-go](https://pkg.go.dev/github.com/aws/aws-sdk-go) | [contrib/aws/aws-sdk-go](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/aws/aws-sdk-go/v2) | `v1.44.327` | `v1.55.5` | :white_check_mark: | +| [github.com/aws/aws-sdk-go-v2](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2) | [contrib/aws/aws-sdk-go-v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/aws/aws-sdk-go-v2/v2) | `v1.20.3` | `v1.32.8` | :white_check_mark: | +| [github.com/bradfitz/gomemcache](https://pkg.go.dev/github.com/bradfitz/gomemcache) | [contrib/bradfitz/gomemcache](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/bradfitz/gomemcache/v2) | `v0.0.0-20230611145640-acc696258285` | `v0.0.0-20230905024940-24af94b03874` | | +| [cloud.google.com/go/pubsub](https://pkg.go.dev/cloud.google.com/go/pubsub) | [contrib/cloud.google.com/go/pubsub.v1](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/cloud.google.com/go/pubsub.v1/v2) | `v1.36.1` | `v1.45.3` | :white_check_mark: | +| [github.com/confluentinc/confluent-kafka-go](https://pkg.go.dev/github.com/confluentinc/confluent-kafka-go) | [contrib/confluentinc/confluent-kafka-go/kafka](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/confluentinc/confluent-kafka-go/kafka/v2) | `v1.9.2` | `v1.9.2` | | +| [github.com/confluentinc/confluent-kafka-go/v2](https://pkg.go.dev/github.com/confluentinc/confluent-kafka-go/v2) | [contrib/confluentinc/confluent-kafka-go/kafka.v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/confluentinc/confluent-kafka-go/kafka.v2/v2) | `v2.2.0` | `v2.8.0` | | +| [database/sql](https://pkg.go.dev/database/sql) | [contrib/database/sql](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/database/sql/v2) | `N/A` | `N/A` | :white_check_mark: | +| [github.com/dimfeld/httptreemux/v5](https://pkg.go.dev/github.com/dimfeld/httptreemux/v5) | [contrib/dimfeld/httptreemux.v5](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/dimfeld/httptreemux.v5/v2) | `v5.5.0` | `v5.5.0` | | +| [github.com/elastic/go-elasticsearch/v6](https://pkg.go.dev/github.com/elastic/go-elasticsearch/v6) | [contrib/elastic/go-elasticsearch.v6](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/elastic/go-elasticsearch.v6/v2) | `v6.8.5` | `v6.8.10` | :white_check_mark: | +| [github.com/emicklei/go-restful/v3](https://pkg.go.dev/github.com/emicklei/go-restful/v3) | [contrib/emicklei/go-restful.v3](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/emicklei/go-restful.v3/v2) | `v3.11.0` | `v3.12.1` | | +| [github.com/envoyproxy/go-control-plane](https://pkg.go.dev/github.com/envoyproxy/go-control-plane) | [contrib/envoyproxy/go-control-plane](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/envoyproxy/go-control-plane/v2) | `v0.13.1` | `v0.13.4` | | +| [github.com/gin-gonic/gin](https://pkg.go.dev/github.com/gin-gonic/gin) | [contrib/gin-gonic/gin](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gin-gonic/gin/v2) | `v1.9.1` | `v1.10.0` | :white_check_mark: | +| [github.com/globalsign/mgo](https://pkg.go.dev/github.com/globalsign/mgo) | [contrib/globalsign/mgo](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/globalsign/mgo/v2) | `v0.0.0-20181015135952-eeefdecb41b8` | `v0.0.0-20181015135952-eeefdecb41b8` | | +| [github.com/go-chi/chi](https://pkg.go.dev/github.com/go-chi/chi) | [contrib/go-chi/chi](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-chi/chi/v2) | `v1.5.4` | `v1.5.5` | :white_check_mark: | +| [github.com/go-chi/chi/v5](https://pkg.go.dev/github.com/go-chi/chi/v5) | [contrib/go-chi/chi.v5](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-chi/chi.v5/v2) | `v5.0.10` | `v5.2.0` | :white_check_mark: | +| [github.com/go-pg/pg/v10](https://pkg.go.dev/github.com/go-pg/pg/v10) | [contrib/go-pg/pg.v10](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-pg/pg.v10/v2) | `v10.11.1` | `v10.14.0` | | +| [github.com/go-redis/redis](https://pkg.go.dev/github.com/go-redis/redis) | [contrib/go-redis/redis](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-redis/redis/v2) | `v6.15.9+incompatible` | `v6.15.9+incompatible` | | +| [github.com/go-redis/redis/v7](https://pkg.go.dev/github.com/go-redis/redis/v7) | [contrib/go-redis/redis.v7](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-redis/redis.v7/v2) | `v7.4.1` | `v7.4.1` | :white_check_mark: | +| [github.com/go-redis/redis/v8](https://pkg.go.dev/github.com/go-redis/redis/v8) | [contrib/go-redis/redis.v8](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go-redis/redis.v8/v2) | `v8.11.5` | `v8.11.5` | :white_check_mark: | +| [go.mongodb.org/mongo-driver](https://pkg.go.dev/go.mongodb.org/mongo-driver) | [contrib/go.mongodb.org/mongo-driver](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/go.mongodb.org/mongo-driver/v2) | `v1.12.1` | `v1.17.2` | | +| [github.com/gocql/gocql](https://pkg.go.dev/github.com/gocql/gocql) | [contrib/gocql/gocql](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gocql/gocql/v2) | `v1.6.0` | `v1.7.0` | :white_check_mark: | +| [github.com/gofiber/fiber/v2](https://pkg.go.dev/github.com/gofiber/fiber/v2) | [contrib/gofiber/fiber.v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gofiber/fiber.v2/v2) | `v2.52.5` | `v2.52.6` | :white_check_mark: | +| [github.com/gomodule/redigo](https://pkg.go.dev/github.com/gomodule/redigo) | [contrib/gomodule/redigo](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gomodule/redigo/v2) | `v1.8.9` | `v1.9.2` | | +| [google.golang.org/api](https://pkg.go.dev/google.golang.org/api) | [contrib/google.golang.org/api](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/google.golang.org/api/v2) | `v0.169.0` | `v0.217.0` | | +| [google.golang.org/grpc](https://pkg.go.dev/google.golang.org/grpc) | [contrib/google.golang.org/grpc](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/google.golang.org/grpc/v2) | `v1.69.0` | `v1.69.4` | :white_check_mark: | +| [github.com/gorilla/mux](https://pkg.go.dev/github.com/gorilla/mux) | [contrib/gorilla/mux](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gorilla/mux/v2) | `v1.8.0` | `v1.8.1` | :white_check_mark: | +| [gorm.io/gorm](https://pkg.go.dev/gorm.io/gorm) | [contrib/gorm.io/gorm.v1](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gorm.io/gorm.v1/v2) | `v1.25.3` | `v1.25.12` | :white_check_mark: | +| [github.com/graph-gophers/graphql-go](https://pkg.go.dev/github.com/graph-gophers/graphql-go) | [contrib/graph-gophers/graphql-go](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/graph-gophers/graphql-go/v2) | `v1.5.0` | `v1.5.0` | :white_check_mark: | +| [github.com/graphql-go/graphql](https://pkg.go.dev/github.com/graphql-go/graphql) | [contrib/graphql-go/graphql](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/graphql-go/graphql/v2) | `v0.8.1` | `v0.8.1` | :white_check_mark: | +| [github.com/hashicorp/consul/api](https://pkg.go.dev/github.com/hashicorp/consul/api) | [contrib/hashicorp/consul](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/hashicorp/consul/v2) | `v1.24.0` | `v1.31.0` | | +| [github.com/hashicorp/vault/api](https://pkg.go.dev/github.com/hashicorp/vault/api) | [contrib/hashicorp/vault](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/hashicorp/vault/v2) | `v1.9.2` | `v1.15.0` | :white_check_mark: | +| [github.com/jackc/pgx/v5](https://pkg.go.dev/github.com/jackc/pgx/v5) | [contrib/jackc/pgx.v5](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/jackc/pgx.v5/v2) | `v5.6.0` | `v5.7.2` | :white_check_mark: | +| [github.com/jmoiron/sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | [contrib/jmoiron/sqlx](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/jmoiron/sqlx/v2) | `v1.3.5` | `v1.4.0` | | +| [github.com/julienschmidt/httprouter](https://pkg.go.dev/github.com/julienschmidt/httprouter) | [contrib/julienschmidt/httprouter](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/julienschmidt/httprouter/v2) | `v1.3.0` | `v1.3.0` | :white_check_mark: | +| [k8s.io/client-go](https://pkg.go.dev/k8s.io/client-go) | [contrib/k8s.io/client-go](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/k8s.io/client-go/v2) | `v0.25.5` | `v0.32.0` | :white_check_mark: | +| [github.com/labstack/echo/v4](https://pkg.go.dev/github.com/labstack/echo/v4) | [contrib/labstack/echo.v4](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/labstack/echo.v4/v2) | `v4.11.1` | `v4.13.3` | :white_check_mark: | +| [log/slog](https://pkg.go.dev/log/slog) | [contrib/log/slog](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/log/slog/v2) | `N/A` | `N/A` | :white_check_mark: | +| [github.com/miekg/dns](https://pkg.go.dev/github.com/miekg/dns) | [contrib/miekg/dns](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/miekg/dns/v2) | `v1.1.55` | `v1.1.62` | | +| [net/http](https://pkg.go.dev/net/http) | [contrib/net/http](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/net/http/v2) | `N/A` | `N/A` | :white_check_mark: | +| [gopkg.in/olivere/elastic.v5](https://pkg.go.dev/gopkg.in/olivere/elastic.v5) | [contrib/olivere/elastic.v5](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/olivere/elastic.v5/v2) | `v5.0.84` | `v5.0.86` | | +| [github.com/redis/go-redis/v9](https://pkg.go.dev/github.com/redis/go-redis/v9) | [contrib/redis/go-redis.v9](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/redis/go-redis.v9/v2) | `v9.1.0` | `v9.7.0` | :white_check_mark: | +| [github.com/segmentio/kafka-go](https://pkg.go.dev/github.com/segmentio/kafka-go) | [contrib/segmentio/kafka-go](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/segmentio/kafka-go/v2) | `v0.4.42` | `v0.4.47` | :white_check_mark: | +| [github.com/sirupsen/logrus](https://pkg.go.dev/github.com/sirupsen/logrus) | [contrib/sirupsen/logrus](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/sirupsen/logrus/v2) | `v1.9.3` | `v1.9.3` | :white_check_mark: | +| [github.com/syndtr/goleveldb](https://pkg.go.dev/github.com/syndtr/goleveldb) | [contrib/syndtr/goleveldb](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/syndtr/goleveldb/v2) | `v1.0.1-0.20220721030215-126854af5e6d` | `v1.0.1-0.20220721030215-126854af5e6d` | | +| [github.com/tidwall/buntdb](https://pkg.go.dev/github.com/tidwall/buntdb) | [contrib/tidwall/buntdb](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/tidwall/buntdb/v2) | `v1.3.0` | `v1.3.2` | | +| [github.com/twitchtv/twirp](https://pkg.go.dev/github.com/twitchtv/twirp) | [contrib/twitchtv/twirp](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/twitchtv/twirp/v2) | `v8.1.3+incompatible` | `v8.1.3+incompatible` | :white_check_mark: | +| [github.com/uptrace/bun](https://pkg.go.dev/github.com/uptrace/bun) | [contrib/uptrace/bun](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/uptrace/bun/v2) | `v1.1.17` | `v1.2.8` | | +| [github.com/urfave/negroni](https://pkg.go.dev/github.com/urfave/negroni) | [contrib/urfave/negroni](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/urfave/negroni/v2) | `v1.0.0` | `v1.0.0` | | +| [github.com/valyala/fasthttp](https://pkg.go.dev/github.com/valyala/fasthttp) | [contrib/valyala/fasthttp](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/valyala/fasthttp/v2) | `v1.51.0` | `v1.58.0` | |