Skip to content

openebs/google-analytics-4

Repository files navigation

Google Analytics 4

Track and monitor your Go programs for free with Google Analytics

The ga package is essentially a Go wrapper around the Google Analytics - Measurement Protocol (Google Analytics 4)

Install

go get -v github.com/openebs/google-analytics-4

API

Create a new client and Send() an 'event'.

Quick Usage

  1. Log into GA and create a new property and note its Measurement ID

  2. Create a ga-test.go file

    package main
    
        import (
            "fmt"
    
            gaClient "github.com/openebs/google-analytics-4/pkg/client"
            gaEvent "github.com/openebs/google-analytics-4/pkg/event"
        )
    
        func main() {
            client, err := gaClient.NewMeasurementClient(
                gaClient.WithApiSecret("<api-secret>"),
                gaClient.WithMeasurementId("<measurement-id>"),
                gaClient.WithClientId("<client-id>"),
            )
            if err != nil {
                panic(err)
            }
    
            event := gaEvent.NewOpenebsEventBuilder().
                Project("OpenEBS").
                K8sVersion("v1.25.15").
                EngineName("test-engine").
                EngineVersion("v1.0.0").
                K8sDefaultNsUid("f5d2a546-19ce-407d-99d4-0655d67e2f76").
                EngineInstaller("helm").
                NodeOs("Ubuntu 20.04.6 LTS").
                NodeArch("linux/amd64").
                NodeKernelVersion("5.4.0-165-generic").
                VolumeName("pvc-b3968e30-9020-4011-943a-7ab338d5f19f").
                VolumeClaimName("openebs-lvmpv").
                Category("volume-deprovision").
                NodeCount("3").
                Build()
    
            err = client.Send(event)
            if err != nil {
                panic(err)
            }
    
            fmt.Println("Event fired!")
        }
  3. In GA, go to Report > Realtime

  4. Run ga-test.go

    $ go run ga-test.go
    Event fired!
    
  5. Watch as your event appears

    foo-ga