Skip to content

OpenTelemetry DisGo handler instrumentation

License

Notifications You must be signed in to change notification settings

disgoorg/oteldisgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Reference Go Report Go Version License Otel DisGo Version DisGo Discord

OtelDisGo

OtelDisGo is a DisGo handler middleware for OpenTelemetry. It provides a simple way to trace your DisGo commands.

Summary

  1. Getting Started
  2. Documentation
  3. Troubleshooting
  4. Contributing
  5. License

Getting Started

Installing

$ go get github.com/disgoorg/oteldisgo

Usage

Check https://opentelemetry.io/docs/languages/go/getting-started/ for more information on how to set up OpenTelemetry.

package main

import (
	"github.com/disgoorg/disgo/handler"
	"github.com/disgoorg/oteldisgo"
)

func main() {
	r := handler.New()
	r.Use(oteldisgo.Middleware("example"))
	// handle commands as usual here
}

OTEL Tracing

OtelDisGo provides the following spans attributes:

  1. For All:
    • interaction.tye - The type of the interaction
    • interaction.id - The id of the interaction
    • interaction.application.id - The id of the application
    • interaction.user.id - The id of the user
    • interaction.channel.id - The id of the channel
    • interaction.guild.id - The id of the guild (if applicable)
    • interaction.createdat - The time the interaction was created
  2. Application Command Interaction
    • interaction.command.id - The id of the command
    • interaction.command.name - The name of the command
    • interaction.command.guild.id - The guild id of the command (if applicable)
    1. Slash Command Interaction
      • interaction.command.subcommand - The subcommand of the command
      • interaction.command.subcommandgroup - The subcommand group of the command
      • interaction.command.path - The full path of the command
    2. User Command Interaction
      • interaction.command.user.id - The id of the user who the command was used on
    3. Message Command Interaction
      • interaction.command.message.id - The id of the message the command was used on
  3. AutoComplete Interaction
    • interaction.command.id - The id of the command
    • interaction.command.name - The name of the command
    • interaction.command.subcommand - The subcommand of the command
    • interaction.command.subcommandgroup - The subcommand group of the command
    • interaction.command.path - The full path of the command
    • interaction.command.guild.id - The guild id of the command (if applicable)
  4. Component Interaction
    • interaction.component.type - The type of the component
    • interaction.component.customid - The custom id of the component
  5. Modal Interaction
    • interaction.component.customid - The custom id of the modal

Documentation

Documentation can be found under

  • Go Reference
  • OpenTelemetry Documentation

Troubleshooting

For help feel free to open an issue or reach out on Discord

Contributing

Contributions are welcomed but for bigger changes we recommend first reaching out via Discord or create an issue to discuss your problems, intentions and ideas.

License

Distributed under the License. See LICENSE for more information.

Supported by Jetbrains

Jetbrain Open Source Community Support

Releases

No releases published

Languages