add gs
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
--[[
|
||||
Specialized analytics reporter for ephemeral counters.
|
||||
Useful for tracking at-a-glance health of a feature.
|
||||
]]
|
||||
|
||||
local UserInputService = game:GetService("UserInputService")
|
||||
|
||||
local Diag = {}
|
||||
Diag.__index = Diag
|
||||
|
||||
-- reportingService - (object) any object that defines the same functions for Diag as AnalyticsService
|
||||
function Diag.new(reportingService)
|
||||
local rsType = type(reportingService)
|
||||
assert(rsType == "table" or rsType == "userdata", "Unexpected value for reportingService")
|
||||
|
||||
local self = {
|
||||
_reporter = reportingService,
|
||||
_isEnabled = true,
|
||||
}
|
||||
setmetatable(self, Diag)
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
-- isEnabled : (boolean)
|
||||
function Diag:setEnabled(isEnabled)
|
||||
assert(type(isEnabled) == "boolean", "Expected isEnabled to be a boolean")
|
||||
self._isEnabled = isEnabled
|
||||
end
|
||||
|
||||
-- counterName : (string) the name of the ephemeral counter to increment
|
||||
-- amount : (int) the value to increment the counter by
|
||||
function Diag:reportCounter(counterName, amount)
|
||||
assert(type(counterName) == "string", "Expected counterName to be a string")
|
||||
assert(type(amount) == "number", "Expected amount to be a number")
|
||||
assert(self._isEnabled, "This reporting service is disabled")
|
||||
|
||||
-- use special naming convention for Xbox counters
|
||||
-- the call to GetPlatform is wrapped in a pcall() because the Testing Service
|
||||
-- executes the scripts in the wrong authorization level
|
||||
local platformID = Enum.Platform.None
|
||||
pcall(function()
|
||||
platformID = UserInputService:GetPlatform()
|
||||
end)
|
||||
if platformID == Enum.Platform.XBoxOne then
|
||||
counterName = "Xbox-" .. tostring(counterName)
|
||||
end
|
||||
|
||||
-- the AnalyticsService should automatically handle batch reporting
|
||||
self._reporter:ReportCounter(counterName, amount)
|
||||
end
|
||||
|
||||
|
||||
-- category : (string) the name of the statistics buffer which to append the data
|
||||
-- value : (number) any type of numeric value
|
||||
function Diag:reportStats(category, value)
|
||||
assert(type(category) == "string", "Expected category to be a string")
|
||||
assert(type(value) == "number", "Expected value to be a number")
|
||||
assert(self._isEnabled, "This reporting service is disabled")
|
||||
|
||||
self._reporter:ReportStats(category, value)
|
||||
end
|
||||
|
||||
return Diag
|
||||
Reference in New Issue
Block a user