summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatarself.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llvoavatarself.cpp')
-rwxr-xr-xindra/newview/llvoavatarself.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index a710c95233..ac59aa0907 100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -63,6 +63,7 @@
#include "llsdutil.h"
#include "llstartup.h"
#include "llsdserialize.h"
+#include "llversioninfo.h"
#if LL_MSVC
// disable boost::lexical_cast warning
@@ -2373,11 +2374,29 @@ LLSD summarize_by_buckets(std::vector<LLSD> in_records,
return result;
}
+// Valid characters for tsdb are alphanumeric, _-./. Others must be cleaned out.
+void sanitize_for_tsdb_tag(std::string& s)
+{
+ for (std::string::iterator it = s.begin(); it != s.end(); ++it)
+ {
+ if (std::isalnum(*it) || *it == '.' || *it == '_' || *it == '-' || *it == '/')
+ {
+ continue;
+ }
+ *it = '_';
+ }
+}
+
void LLVOAvatarSelf::sendViewerAppearanceChangeMetrics()
{
static volatile bool reporting_started(false);
static volatile S32 report_sequence(0);
+ std::string viewer_version_channel = LLVersionInfo::getChannel();
+ sanitize_for_tsdb_tag(viewer_version_channel);
+ std::string viewer_version_short = LLVersionInfo::getShortVersion();
+ std::string viewer_version_build = llformat("%d", LLVersionInfo::getBuild());
+
LLSD msg; // = metricsData();
msg["message"] = "ViewerAppearanceChangeMetrics";
msg["session_id"] = gAgentSessionID;
@@ -2386,6 +2405,9 @@ void LLVOAvatarSelf::sendViewerAppearanceChangeMetrics()
msg["initial"] = !reporting_started;
msg["break"] = false;
msg["duration"] = mTimeSinceLastRezMessage.getElapsedTimeF32();
+ msg["viewer_version_channel"] = viewer_version_channel;
+ msg["viewer_version_short"] = viewer_version_short;
+ msg["viewer_version_build"] = viewer_version_build;
// Status of our own rezzing.
msg["rez_status"] = LLVOAvatar::rezStatusToString(getRezzedStatus());