conversion.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package quic
  2. import (
  3. "strconv"
  4. "time"
  5. "github.com/quic-go/quic-go/logging"
  6. )
  7. // Helper to convert logging.ByteCount(alias for int64) to float64 used in prometheus
  8. func byteCountToPromCount(count logging.ByteCount) float64 {
  9. return float64(count)
  10. }
  11. // Helper to convert Duration to float64 used in prometheus
  12. func durationToPromGauge(duration time.Duration) float64 {
  13. return float64(duration.Milliseconds())
  14. }
  15. // Helper to convert https://pkg.go.dev/github.com/quic-go/quic-go@v0.23.0/logging#PacketType into string
  16. func packetTypeString(pt logging.PacketType) string {
  17. switch pt {
  18. case logging.PacketTypeInitial:
  19. return "initial"
  20. case logging.PacketTypeHandshake:
  21. return "handshake"
  22. case logging.PacketTypeRetry:
  23. return "retry"
  24. case logging.PacketType0RTT:
  25. return "0_rtt"
  26. case logging.PacketTypeVersionNegotiation:
  27. return "version_negotiation"
  28. case logging.PacketType1RTT:
  29. return "1_rtt"
  30. case logging.PacketTypeStatelessReset:
  31. return "stateless_reset"
  32. case logging.PacketTypeNotDetermined:
  33. return "undetermined"
  34. default:
  35. return "unknown_packet_type"
  36. }
  37. }
  38. // Helper to convert https://pkg.go.dev/github.com/quic-go/quic-go@v0.23.0/logging#PacketDropReason into string
  39. func packetDropReasonString(reason logging.PacketDropReason) string {
  40. switch reason {
  41. case logging.PacketDropKeyUnavailable:
  42. return "key_unavailable"
  43. case logging.PacketDropUnknownConnectionID:
  44. return "unknown_conn_id"
  45. case logging.PacketDropHeaderParseError:
  46. return "header_parse_err"
  47. case logging.PacketDropPayloadDecryptError:
  48. return "payload_decrypt_err"
  49. case logging.PacketDropProtocolViolation:
  50. return "protocol_violation"
  51. case logging.PacketDropDOSPrevention:
  52. return "dos_prevention"
  53. case logging.PacketDropUnsupportedVersion:
  54. return "unsupported_version"
  55. case logging.PacketDropUnexpectedPacket:
  56. return "unexpected_packet"
  57. case logging.PacketDropUnexpectedSourceConnectionID:
  58. return "unexpected_src_conn_id"
  59. case logging.PacketDropUnexpectedVersion:
  60. return "unexpected_version"
  61. case logging.PacketDropDuplicate:
  62. return "duplicate"
  63. default:
  64. return "unknown_reason"
  65. }
  66. }
  67. // Helper to convert https://pkg.go.dev/github.com/quic-go/quic-go@v0.23.0/logging#PacketLossReason into string
  68. func packetLossReasonString(reason logging.PacketLossReason) string {
  69. switch reason {
  70. case logging.PacketLossReorderingThreshold:
  71. return "reordering"
  72. case logging.PacketLossTimeThreshold:
  73. return "timeout"
  74. default:
  75. return "unknown_loss_reason"
  76. }
  77. }
  78. func uint8ToString(input uint8) string {
  79. return strconv.FormatUint(uint64(input), 10)
  80. }