Add Google Analytics reporting in place of existing custom reporting (#2015)

Replacing the older analytics with a new Google Analytics based mechanism.
This commit is contained in:
Sanket Sudake
2021-05-12 12:24:27 +05:30
committed by GitHub
parent 040763ebb2
commit 2a014e56b0
23 changed files with 378 additions and 97 deletions
+43
View File
@@ -0,0 +1,43 @@
FROM golang:1.14-alpine as godep
RUN apk add bash ca-certificates git gcc g++ libc-dev
ARG GOPKG=github.com/fission/fission
ENV GO111MODULE=on
WORKDIR /go/src/${GOPKG}
# To reuse build cache, copy go.mod & go.sum and download dependencies first.
COPY go.* ./
RUN go mod download
FROM godep as builder
ARG GOPKG
WORKDIR /go/src/${GOPKG}
# Copy whole fission directory to work dir
COPY ./ ./
WORKDIR /go/src/${GOPKG}/cmd/reporter
ARG GITCOMMIT=unknown
# E.g. GITCOMMIT=$(git rev-parse HEAD)
ARG BUILDVERSION=unknown
# E.g. BUILDVERSION=$(git rev-parse HEAD)
ARG BUILDDATE=unknown
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
RUN CGO_ENABLED=0 go build \
-o /go/bin/reporter \
-gcflags=-trimpath=$GOPATH \
-asmflags=-trimpath=$GOPATH \
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
FROM alpine:3.13 as base
RUN apk add --update ca-certificates
COPY --from=builder /go/bin/reporter /
ENTRYPOINT ["/reporter"]
+33
View File
@@ -0,0 +1,33 @@
/*
Copyright 2021 The Fission Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"github.com/spf13/cobra"
)
func App() *cobra.Command {
cobra.EnableCommandSorting = false
rootCmd := &cobra.Command{
Use: "reporter",
Short: "Report fission events to analytics service",
ValidArgs: []string{"event"},
Args: cobra.OnlyValidArgs,
}
rootCmd.AddCommand(EventCommand())
return rootCmd
}
+67
View File
@@ -0,0 +1,67 @@
/*
Copyright 2021 The Fission Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"github.com/fission/fission/pkg/tracker"
"github.com/spf13/cobra"
)
func eventCommandHandler(cmd *cobra.Command, args []string) error {
var err error
flags := cmd.PersistentFlags()
event := tracker.Event{}
event.Category, err = flags.GetString("category")
if err != nil {
return err
}
event.Action, err = flags.GetString("action")
if err != nil {
return err
}
event.Label, err = flags.GetString("label")
if err != nil {
return err
}
event.Value, err = flags.GetString("value")
if err != nil {
return err
}
return tracker.Tracker.SendEvent(event)
}
func EventCommand() *cobra.Command {
eventCmd := &cobra.Command{
Use: "event",
Short: "Report event to analytics",
RunE: eventCommandHandler,
Args: cobra.NoArgs,
}
persistentFlags := eventCmd.PersistentFlags()
persistentFlags.StringP("category", "c", "", "event category")
persistentFlags.StringP("action", "a", "", "event action")
persistentFlags.StringP("label", "l", "", "event label")
persistentFlags.StringP("value", "v", "", "event value")
eventCmd.MarkPersistentFlagRequired("category")
eventCmd.MarkPersistentFlagRequired("action")
return eventCmd
}
+25
View File
@@ -0,0 +1,25 @@
/*
Copyright 2021 The Fission Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"github.com/fission/fission/cmd/reporter/app"
)
func main() {
app.App().Execute()
}