pprueidis

package module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

README

pprueidis

This package instruments the redis/rueidis package.

Installation

$ go get github.com/pinpoint-apm/pinpoint-go-agent/plugin/rueidis
import "github.com/pinpoint-apm/pinpoint-go-agent/plugin/rueidis"

Usage

PkgGoDev

This package instruments the redis/rueidis calls. Use the NewHook as the rueidis.Hook.

client, err := rueidis.NewClient(opt)
client = rueidishook.WithHook(client, pprueidis.NewHook(opt))

It is necessary to pass the context containing the pinpoint.Tracer to rueidis.Client.

ctx := pinpoint.NewContext(context.Background(), tracer)
err = client.Do(ctx, client.B().Set().Key("foo").Value("bar").Nx().Build()).Error()
package main

import (
    "github.com/pinpoint-apm/pinpoint-go-agent"
    "github.com/pinpoint-apm/pinpoint-go-agent/plugin/rueidis"
    "github.com/redis/rueidis"
    "github.com/redis/rueidis/rueidishook"
)

func rueidisv1(w http.ResponseWriter, r *http.Request) {
    opt := rueidis.ClientOption{
        InitAddress: []string{"localhost:6379"},
    }

    client, err := rueidis.NewClient(opt)
    if err != nil {
		fmt.Println(err)
    }
    client = rueidishook.WithHook(client, pprueidis.NewHook(opt))

    ctx := r.Context()
    err = client.Do(ctx, client.B().Set().Key("foo").Value("bar").Nx().Build()).Error()
    ...

Full Example Source

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hook

type Hook struct {
	// contains filtered or unexported fields
}

func NewHook

func NewHook(opts rueidis.ClientOption) *Hook

NewHook creates a ruedis.Hook to instrument redis calls.

func (*Hook) Do

func (h *Hook) Do(client rueidis.Client, ctx context.Context, cmd rueidis.Completed) (resp rueidis.RedisResult)

func (*Hook) DoCache

func (h *Hook) DoCache(client rueidis.Client, ctx context.Context, cmd rueidis.Cacheable, ttl time.Duration) (resp rueidis.RedisResult)

func (*Hook) DoMulti

func (h *Hook) DoMulti(client rueidis.Client, ctx context.Context, multi ...rueidis.Completed) (resps []rueidis.RedisResult)

func (*Hook) DoMultiCache

func (h *Hook) DoMultiCache(client rueidis.Client, ctx context.Context, multi ...rueidis.CacheableTTL) (resps []rueidis.RedisResult)

func (*Hook) Receive

func (h *Hook) Receive(client rueidis.Client, ctx context.Context, subscribe rueidis.Completed, fn func(msg rueidis.PubSubMessage)) (err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL