feat(usage): include pvc name in volume events

Signed-off-by: Pawan <pawan@mayadata.io>
This commit is contained in:
Pawan 2020-06-07 16:58:44 +05:30 committed by Kiran Mova
parent e558bb52cb
commit b08a1e2a1f
10 changed files with 22 additions and 3 deletions

View file

@ -61,11 +61,12 @@ var SupportedVolumeCapabilityAccessModes = []*csi.VolumeCapability_AccessMode{
}
// sendEventOrIgnore sends anonymous local-pv provision/delete events
func sendEventOrIgnore(pvName, capacity, stgType, method string) {
func sendEventOrIgnore(pvcName, pvName, capacity, stgType, method string) {
if zfs.GoogleAnalyticsEnabled == "true" {
analytics.New().Build().ApplicationBuilder().
SetVolumeType(stgType, method).
SetDocumentTitle(pvName).
SetCampaignName(pvcName).
SetLabel(analytics.EventLabelCapacity).
SetReplicaCount(analytics.LocalPVReplicaCount, method).
SetCategory(method).
@ -204,6 +205,7 @@ func (cs *controller) CreateVolume(
pool := helpers.GetInsensitiveParameter(&parameters, "poolname")
size := req.GetCapacityRange().RequiredBytes
contentSource := req.GetVolumeContentSource()
pvcName := helpers.GetInsensitiveParameter(&parameters, "csi.storage.k8s.io/pvc/name")
if err = cs.validateVolumeCreateReq(req); err != nil {
return nil, err
@ -221,7 +223,7 @@ func (cs *controller) CreateVolume(
return nil, status.Error(codes.Internal, err.Error())
}
sendEventOrIgnore(volName, strconv.FormatInt(int64(size), 10), "zfs-localpv", analytics.VolumeProvision)
sendEventOrIgnore(pvcName, volName, strconv.FormatInt(int64(size), 10), "zfs-localpv", analytics.VolumeProvision)
topology := map[string]string{zfs.ZFSTopologyKey: selected}
cntx := map[string]string{zfs.PoolNameKey: pool}
@ -268,7 +270,7 @@ func (cs *controller) DeleteVolume(
)
}
sendEventOrIgnore(volumeID, vol.Spec.Capacity, "zfs-localpv", analytics.VolumeDeprovision)
sendEventOrIgnore("", volumeID, vol.Spec.Capacity, "zfs-localpv", analytics.VolumeDeprovision)
deleteResponse:
return csipayload.NewDeleteVolumeResponseBuilder().Build(), nil

View file

@ -34,6 +34,7 @@ func (u *Usage) Send() {
gaClient.ClientID(u.clientID).
CampaignSource(u.campaignSource).
CampaignContent(u.clientID).
CampaignName(u.campaignName).
ApplicationID(u.appID).
ApplicationVersion(u.appVersion).
DataSource(u.dataSource).

View file

@ -86,6 +86,9 @@ type Gclient struct {
// anonymous campaign source
campaignSource string
// anonymous campaign name
campaignName string
// https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#ds
// (usecase) node-detail
dataSource string
@ -133,6 +136,12 @@ func (u *Usage) SetApplicationName(appName string) *Usage {
return u
}
// SetCampaignName : set the name of the PVC or will be empty.
func (u *Usage) SetCampaignName(campaignName string) *Usage {
u.campaignName = campaignName
return u
}
// SetApplicationID : usecase(OpenEBS/NDM)
func (u *Usage) SetApplicationID(appID string) *Usage {
u.appID = appID