Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 730403e7 authored by dwchen's avatar dwchen
Browse files

Statsd uidmap includes vers string and installer

Each config can choose to include version strings and installer with
each metrics report. This data may be useful in the cloud to filter
the app-specific data.

BUG: 115626330
Change-Id: I3972ff2a94e7f0347ac0cc8a443cf328c1731e13
Test: Modified unit-tests, verified on marlin-eng
parent 68585439
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -354,11 +354,9 @@ void StatsLogProcessor::onConfigMetricsReportLocked(const ConfigKey& key,
    // This skips the uid map if it's an empty config.
    if (it->second->getNumMetrics() > 0) {
        uint64_t uidMapToken = proto->start(FIELD_TYPE_MESSAGE | FIELD_ID_UID_MAP);
        if (it->second->hashStringInReport()) {
            mUidMap->appendUidMap(dumpTimeStampNs, key, &str_set, proto);
        } else {
            mUidMap->appendUidMap(dumpTimeStampNs, key, nullptr, proto);
        }
        mUidMap->appendUidMap(
                dumpTimeStampNs, key, it->second->hashStringInReport() ? &str_set : nullptr,
                it->second->versionStringsInReport(), it->second->installerInReport(), proto);
        proto->end(uidMapToken);
    }

+7 −4
Original line number Diff line number Diff line
@@ -750,21 +750,24 @@ status_t StatsService::cmd_print_logs(int out, const Vector<String8>& args) {
}

Status StatsService::informAllUidData(const vector<int32_t>& uid, const vector<int64_t>& version,
                                      const vector<String16>& app) {
                                      const vector<String16>& version_string,
                                      const vector<String16>& app,
                                      const vector<String16>& installer) {
    ENFORCE_UID(AID_SYSTEM);

    VLOG("StatsService::informAllUidData was called");
    mUidMap->updateMap(getElapsedRealtimeNs(), uid, version, app);
    mUidMap->updateMap(getElapsedRealtimeNs(), uid, version, version_string, app, installer);
    VLOG("StatsService::informAllUidData succeeded");

    return Status::ok();
}

Status StatsService::informOnePackage(const String16& app, int32_t uid, int64_t version) {
Status StatsService::informOnePackage(const String16& app, int32_t uid, int64_t version,
                                      const String16& version_string, const String16& installer) {
    ENFORCE_UID(AID_SYSTEM);

    VLOG("StatsService::informOnePackage was called");
    mUidMap->updateApp(getElapsedRealtimeNs(), app, uid, version);
    mUidMap->updateApp(getElapsedRealtimeNs(), app, uid, version, version_string, installer);
    return Status::ok();
}

+4 −2
Original line number Diff line number Diff line
@@ -73,8 +73,10 @@ public:
    virtual Status informAlarmForSubscriberTriggeringFired();

    virtual Status informAllUidData(const vector<int32_t>& uid, const vector<int64_t>& version,
                                    const vector<String16>& app);
    virtual Status informOnePackage(const String16& app, int32_t uid, int64_t version);
                                    const vector<String16>& version_string,
                                    const vector<String16>& app, const vector<String16>& installer);
    virtual Status informOnePackage(const String16& app, int32_t uid, int64_t version,
                                    const String16& version_string, const String16& installer);
    virtual Status informOnePackageRemoved(const String16& app, int32_t uid);
    virtual Status informDeviceShutdown();

+2 −0
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@ MetricsManager::MetricsManager(const ConfigKey& key, const StatsdConfig& config,
            mActivationAtomTrackerToMetricMap, mMetricIndexesWithActivation, mNoReportMetricIds);

    mHashStringsInReport = config.hash_strings_in_metric_report();
    mVersionStringsInReport = config.version_strings_in_metric_report();
    mInstallerInReport = config.installer_in_metric_report();

    if (config.allowed_log_source_size() == 0) {
        mConfigValid = false;
+10 −0
Original line number Diff line number Diff line
@@ -83,6 +83,14 @@ public:
        return mHashStringsInReport;
    };

    inline bool versionStringsInReport() const {
        return mVersionStringsInReport;
    };

    inline bool installerInReport() const {
        return mInstallerInReport;
    };

    void refreshTtl(const int64_t currentTimestampNs) {
        if (mTtlNs > 0) {
            mTtlEndNs = currentTimestampNs + mTtlNs;
@@ -125,6 +133,8 @@ private:
    bool mConfigValid = false;

    bool mHashStringsInReport = false;
    bool mVersionStringsInReport = false;
    bool mInstallerInReport = false;

    const int64_t mTtlNs;
    int64_t mTtlEndNs;
Loading