add gs
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
--[[
|
||||
A centralized hub for basic metrics reporting.
|
||||
This class is designed to provide a baseline exposure to the reporters.
|
||||
|
||||
Context specific Analytics.lua objects should be created in sub-projects,
|
||||
to report specific actions like chat interactions, or game page interactions.
|
||||
|
||||
Analytics.lua and the reporters here in Common should serve to cover the
|
||||
most common interactions.
|
||||
]]
|
||||
|
||||
local AnalyticsService = game:GetService("RbxAnalyticsService")
|
||||
local Reporters = script.Parent.AnalyticsReporters
|
||||
|
||||
local DiagReporter = require(Reporters.Diag)
|
||||
local EventStreamReporter = require(Reporters.EventStream)
|
||||
local GoogleAnalyticsReporter = require(Reporters.GoogleAnalytics)
|
||||
local InfluxDbReporter = require(Reporters.Influx)
|
||||
|
||||
|
||||
local Analytics = {}
|
||||
Analytics.__index = Analytics
|
||||
|
||||
-- reportingService : (Service, optional) an object that exposes the same functions as AnalyticsService
|
||||
function Analytics.new(reportingService)
|
||||
if not reportingService then
|
||||
reportingService = AnalyticsService
|
||||
end
|
||||
|
||||
-- All public reporting functions are exposed by the objects defined in the properties
|
||||
local self = {}
|
||||
self.Diag = DiagReporter.new(reportingService)
|
||||
self.EventStream = EventStreamReporter.new(reportingService)
|
||||
self.GoogleAnalytics = GoogleAnalyticsReporter.new(reportingService)
|
||||
self.InfluxDb = InfluxDbReporter.new(reportingService)
|
||||
|
||||
setmetatable(self, Analytics)
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function Analytics.mock()
|
||||
-- create a reporting service that does not fire any requests out to the world
|
||||
local fakeReportingService = {}
|
||||
function fakeReportingService.ReportCounter() end
|
||||
function fakeReportingService.ReportInfluxSeries() end
|
||||
function fakeReportingService.ReportStats() end
|
||||
function fakeReportingService.SetRBXEvent() end
|
||||
function fakeReportingService.SetRBXEventStream() end
|
||||
function fakeReportingService.TrackEvent() end
|
||||
function fakeReportingService.UpdateHeartbeatObject() end
|
||||
|
||||
return Analytics.new(fakeReportingService)
|
||||
end
|
||||
|
||||
return Analytics
|
||||
Reference in New Issue
Block a user