Files
tubestation/toolkit/components/telemetry/ipc/TelemetryIPC.cpp
Chris H-C 1ad2c3202b bug 1369041 - Allow child processes to discard data when overwhelmed r=bsmedberg,gfritzsche f?bsmedberg
It is possible in extreme cases that the Telemetry IPC Accumulator might be
starved long enough that it cannot drain its stored accumulations for a while.

Once we hit 5x the high water mark, start discarding data.

Count each piece and type of discarded data and report it via a custom IPC
message.

MozReview-Commit-ID: JayRpa5QPec
2017-06-09 09:53:42 -04:00

55 lines
1.9 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "TelemetryIPC.h"
#include "../TelemetryScalar.h"
#include "../TelemetryHistogram.h"
#include "../TelemetryEvent.h"
namespace mozilla {
void
TelemetryIPC::AccumulateChildHistograms(Telemetry::ProcessID aProcessType,
const nsTArray<Telemetry::Accumulation>& aAccumulations)
{
TelemetryHistogram::AccumulateChild(aProcessType, aAccumulations);
}
void
TelemetryIPC::AccumulateChildKeyedHistograms(Telemetry::ProcessID aProcessType,
const nsTArray<Telemetry::KeyedAccumulation>& aAccumulations)
{
TelemetryHistogram::AccumulateChildKeyed(aProcessType, aAccumulations);
}
void
TelemetryIPC::UpdateChildScalars(Telemetry::ProcessID aProcessType,
const nsTArray<Telemetry::ScalarAction>& aScalarActions)
{
TelemetryScalar::UpdateChildData(aProcessType, aScalarActions);
}
void
TelemetryIPC::UpdateChildKeyedScalars(Telemetry::ProcessID aProcessType,
const nsTArray<Telemetry::KeyedScalarAction>& aScalarActions)
{
TelemetryScalar::UpdateChildKeyedData(aProcessType, aScalarActions);
}
void
TelemetryIPC::RecordChildEvents(Telemetry::ProcessID aProcessType, const nsTArray<Telemetry::ChildEventData>& aEvents)
{
TelemetryEvent::RecordChildEvents(aProcessType, aEvents);
}
void
TelemetryIPC::RecordDiscardedData(Telemetry::ProcessID aProcessType,
const Telemetry::DiscardedData& aDiscardedData)
{
TelemetryScalar::RecordDiscardedData(aProcessType, aDiscardedData);
}
}