Commit graph

201 commits

Author SHA1 Message Date
Bertrand SIMONNET
0296345ea7 metrics: Add license information.
The license was copied from the original repo at:
https://chromium.googlesource.com/chromiumos/platform2/+/master/LICENSE

Change-Id: I39c3479d62a107bd8d264faa72021cdeed25cea2
2015-07-28 17:30:08 -07:00
Bertrand SIMONNET
c95440e9b6 metrics: Import protobufs from Chromium.
Instead of pulling the protobufs from chromium, copy them into
platform2/metrics/proto.
This enables us to add Chromium OS specific changes without polluting
Chromium's protobuf.

BUG=chrome-os-partner:42861
TEST=`FEATURES=test emerge-gizmo metrics` succeeds.

CQ-DEPEND=CL:286895

Change-Id: Ib919a21da6518199c29adb70c8bc27220e0dc031
Reviewed-on: https://chromium-review.googlesource.com/286943
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Trybot-Ready: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
2015-07-23 01:16:46 +00:00
Luigi Semenzato
dc86589885 metrics: replace "Logging.*" with "Platform.*"
"Logging.*" is not a good name.
Also remove unused function ReportDailyUse().

BUG=chromium:508535
TEST=it compiles

Change-Id: I070bada4857abd80989ecc746adcbf1dcf6239a3
Reviewed-on: https://chromium-review.googlesource.com/284610
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
2015-07-10 03:40:30 +00:00
Alex Vakulenko
1eea1618cd platform2: Fix issues with new version of libchrome
libchrome r334380 has the following breaking changes that need to be fixed:
- base::JSONWriter::Write() and base::JSONWriter::WriteWithOptions() take
  "const base::Value&" instead of "const base::Value*"
- base::JSONReader::Read() and base::JSONReader::ReadAndReturnError()
  return a scoped_ptr<base::Value> instead of base::Value*
- base/safe_strerror_posix.h is moved to base/posix/safe_strerror.h
- safe_strerror() is now in "base" namespace
- StartsWithASCII(), EndsWith(), StringToUpperASCII(), LowerCaseEqualsASCII()
  are now in "base" namespace
- ObserverList<T> is now in "base" namespace
- base::PrintTo(base::FilePath) used in gtest is now moved to libchrome-test
  library and as such, unit test runners need to link to this library now.
- crypto::RSAPrivateKey::CreateSensitive() is now removed from //crypto, so
  some of tests in chromeos-login that used that function had to be changed
  to use crypto::GenerateRSAKeyPairNSS() directly.
- UnixDomanSocket class is now in "base" namespace
- Pickle class is now in "base" namespace

BUG=chromium:496469
TEST=`./build_packages`
CQ-DEPEND=CL:277662

Change-Id: I36e5fbf2e36a92068873ffbd44020c862a3ed9e3
Reviewed-on: https://chromium-review.googlesource.com/277671
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
2015-06-17 17:34:39 +00:00
Wei-Ning Huang
323d70d143 init: fix typo and prevent startup error
metrics_library upstart job failes on boot because of a typo and soft
link command linking on existing file. Fixing the typo and add '-f' flag
when linking to supress error.

BUG=chrome-os-partner:40606
TEST=`start metrics_library`

Change-Id: I3c144f4a636a61bb460a9de74771f61ad1e6b0f9
Reviewed-on: https://chromium-review.googlesource.com/273172
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Wei-Ning Huang <wnhuang@chromium.org>
Tested-by: Wei-Ning Huang <wnhuang@chromium.org>
2015-06-16 18:30:56 +00:00
Alex Vakulenko
ef31bec13e metrics: Add a check for abnormally small messages to prevent crashes
In some situations the |message_size| read from |fd| comes up as 0. In this
case we try to read a negative size for the message body and this leads for
crashes. Add a check to make sure that message_size is at least 4 bytes long
to account for the required 32-bit integer message size field.

BUG=chrome-os-partner:40711
TEST=`FEATURES=test emerge-link metrics`

Change-Id: Ie9adbc8e0e6a9f2c80450bf7ebcb3e05ad1f1f8e
Reviewed-on: https://chromium-review.googlesource.com/276362
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2015-06-09 20:17:26 +00:00
Alex Vakulenko
ba08992d1e libchromeos: Switch http Response to use streams
Make the response data of an HTTP request to use stream interface.

BUG=None
TEST=`FEATURES=test emerge-link libchromeos`

Change-Id: I4d0e427e90f154a83ffd75973b4c211a989c1993
Reviewed-on: https://chromium-review.googlesource.com/265068
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2015-04-13 21:31:55 +00:00
Bertrand Simonnet
eba8a014cf Revert "metrics: Fix the import path of protobufs."
This reverts commit 54297164b4258cd8098903a38fb3837c462e2db1.

Dependent CL reverted.

Change-Id: I35b4ede8b2f67d9dade60869cfbddea81ebeb556
Reviewed-on: https://chromium-review.googlesource.com/264784
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
2015-04-08 20:55:00 +00:00
Bertrand SIMONNET
6db436a03b metrics: Fix the import path of protobufs.
We are switching chromeos-base/metrics to use the metrics component
pulled as part of the checkout.
This components will be copied in $S and not in platform2/metrics. The
import path need to be fixed.

BUG=chromium:474811
TEST=trybots.
TEST=unittests.

CQ-DEPEND=CL:264544

Change-Id: I02a379eff0f97081dffd382bbee5028b3600f975
Reviewed-on: https://chromium-review.googlesource.com/264506
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2015-04-08 19:12:10 +00:00
Alex Vakulenko
e97b741806 platform2: Switch over to libchrome r323904
Using revision 323904 of libchrome by default. Fixed a few minor
compiler error due to a change in the new libchrome's headers.

BUG=chromium:472654
TEST=./build_packages
CQ-DEPEND=CL:264350

Change-Id: I0d57f34403f60c3d60d9159b60b498bf7ff166f3
Reviewed-on: https://chromium-review.googlesource.com/264311
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2015-04-07 21:41:31 +00:00
Luigi Semenzato
538e2090cd metrics: add TPM.EarlyResetDuringCommand CrOS event.
This is reported if the TPM was reset during a command
in the first 30 seconds of the previous boot session.

BUG=chromium:431360
TEST=none
BRANCH=none

Change-Id: I66fb453094e5281301cb39d9b86ba5f9c82c10f6
Reviewed-on: https://chromium-review.googlesource.com/261357
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
2015-03-31 06:34:31 +00:00
Mike Frysinger
732fe21082 delete __STDC_{FORMAT,LIMIT}_MACROS
With newer glibc versions (2.18+), these macros no longer exist (and the
functionality they protected are always enabled).  Delete them.

BUG=chromium:401360
TEST=precq passes

Change-Id: I21b0607a874b9f9e39dff050054a2928a6c55023
Reviewed-on: https://chromium-review.googlesource.com/262903
Trybot-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2015-03-29 10:02:23 +00:00
Luigi Semenzato
93408425ea metrics: make metrics library also use /var/lib/metrics/uma-events
I missed this when I changed the location used by the metrics
daemon.

BUG=chromium:447256
TEST=none
BRANCH=none

Change-Id: Ie964abb70911bcdc79993b62a066ea77f65acfa5
Reviewed-on: https://chromium-review.googlesource.com/261463
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
2015-03-20 23:06:52 +00:00
Stefan Sauer
3b88766a3d metrics: tell what file we can't open on error
Use PDLOG and also log the filename.

BUG=chromium:467586
TEST=rebuild image and checked the log

Change-Id: I72f9838477adad71e79cc25f1f3a40bb9781b848
Reviewed-on: https://chromium-review.googlesource.com/260261
Tested-by: Stefan Sauer <ensonic@google.com>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Stefan Sauer <ensonic@google.com>
2015-03-19 17:58:33 +00:00
Luigi Semenzato
5672f8b2e4 metrics: move sample file from /var/run to /var/lib
Some metrics are generated near shutdown and we expect to collect
them at reboot, but /var/run is a tmpfs and /var/run/uma-events
is lost.

This changes the uma events file location from the perspective
of the metrics daemon.  I am making the same change to Chrome.
I am adding a symlink to allow an older Chrome to read the
samples from the old location.  A newer Chrome will be screwed
but I hope that's OK (i.e. this will work for official builds
and for Chrome OS developers, but may cause malfunction for
Chrome developers)

BUG=chromium:447256
TEST=verified that /var/lib/metrics/uma-events grows and is truncated
CQ-DEPEND=CL:258971

Change-Id: I677cda16486de239dd205247083d4ad7240d992b
Reviewed-on: https://chromium-review.googlesource.com/257084
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
2015-03-12 05:16:49 +00:00
Bertrand SIMONNET
e4fa61e05e metrics: don't upload metrics when metrics are disabled
The uploader should only send metrics samples when the metrics are
enabled.
The uploader daemon is still started when the metrics are disabled so
that:
* When we enable the metrics, we don't require a restart of
  metrics_daemon to start uploading metrics.
* The metrics file is truncated periodically and avoid taking too much
  space on long running system with metrics disabled.

BUG=chromium:459636
TEST=unittests
TEST=`test_that -b gizmo gizmo platform_MetricsUploader` works
TEST=manual: uploader does not upload metrics if metrics are disabled.

CQ-DEPEND=CL:250980

Change-Id: I9f5da3457066a183c5791b5488e985b7ab13b6e1
Reviewed-on: https://chromium-review.googlesource.com/250822
Trybot-Ready: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Reviewed-by: Nathan Bullock <nathanbullock@google.com>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2015-02-20 00:07:08 +00:00
Ben Chan
067ec8ba78 metrics: Disable uploader on non-official build.
The metrics uploader should only be enabled on an official build.

BUG=chromium:459105
TEST=`FEATURES=test emerge-$BOARD metrics`
TEST=Verified that metrics uploader is disabled on a developer build.

Change-Id: I5cadb3afeb56c0adac971228aa48ad56ed913bbf
Reviewed-on: https://chromium-review.googlesource.com/250542
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
2015-02-18 01:45:37 +00:00
Alex Vakulenko
7e238f3bcb platform2: Switch over to using base64 functions from libchromeos
Replaced existing implementations of Base64Encode/Base64Decode
with the functions from libchromeos, which were added as part
of an earlier change (see CL:247690).

BUG=None
TEST=`FEATURES=test emerge-link cryptohome debugd metrics privetd update_engine`

Change-Id: I8cec677ce2c2fd3b97ca2228d35c2cf5cd133f4c
Reviewed-on: https://chromium-review.googlesource.com/247792
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2015-02-11 06:00:08 +00:00
Yunlian Jiang
5a6ac9c97c metrics: fix -Winconsistent-missing-override warning
BUG=chromium:453069
TEST=FEATURES="test" emerge-amd64-generic metrics with new clang.

Change-Id: I1576200c94a01af46dd2f36e87806b8c93de7b86
Reviewed-on: https://chromium-review.googlesource.com/244052
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
2015-01-29 03:48:31 +00:00
Steve Fung
ae4bdc4c92 metrics: Fix upload_service to work with base::MessageLoop
With an earlier change, metrics_daemon was switched from the glib message loop
to base::MessageLoop.  UploadService still is trying to interact with the
glib message loop, it needs to be switched to using base::MessageLoop.

BUG=chromium:452228
TEST=`FEATURES=test emerge-panther metrics`

Change-Id: I38eb52ca1995d75cfb7d0e69a434e649493e7c6f
Reviewed-on: https://chromium-review.googlesource.com/243429
Reviewed-by: Nathan Bullock <nathanbullock@google.com>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Stephen Fung <stevefung@chromium.org>
Commit-Queue: Stephen Fung <stevefung@chromium.org>
Trybot-Ready: Stephen Fung <stevefung@chromium.org>
2015-01-28 01:56:01 +00:00
Bertrand SIMONNET
a8bcc18bea metrics: generate app_version from standard lsb-release fields
app_version used to be set to CHROMEOS_RELEASE_DESCRIPTION which has no
structure and should never be used for parsing.

Now that various version numbers have been added to lsb-release, use those
fields to generate the version string.

The version string format is "A.B.C.D (Official Build) $CHANNEL $BOARD" with:
* A = chrome milestone
* B = build number
* C = branch number
* D = patch number
* CHANNEL is one of STABLE, DEV, BETA, CANARY
* BOARD is the board name

BUG=chromium:426889
TEST=trybot run on gizmo-paladin
TEST=`test_that -b gizmo gizmo platform_MetricsUploader`
TEST=`FEATURES=test emerge-gizmo metrics`

Change-Id: I624df14bd859e0c0279dd3de621e651150d30add
Reviewed-on: https://chromium-review.googlesource.com/236949
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Trybot-Ready: Bertrand Simonnet <bsimonnet@chromium.org>
2015-01-22 01:18:06 +00:00
Alex Vakulenko
3d41d4561d libchromeos: Cleaned up HTTP utilities
Renamed http utilities by appending ...AndBlock() to make it
obvious that they are blocking (synchronous) calls. Async I/O
is coming in subsequent CLs.

Replaced a bunch of "const char*" with "const std::string&" in
function prototypes.

Also removed extra overloads for http_utils functions in preparation
for adding asynchronous API which would bloat the overloads even more.
The original overloads were to provide the ability to omit some
less-commonly-used parameters, but that would eventually make the API
harder to choose from since the number of overloads will get out of hand.

Swept the code to remove unnecessary calls to std::string::c_str() and
added omitted parameters in calls to http_utils functions.

BUG=None
TEST=FEATURES=test emerge-link libchromeos peerd privetd feedback metrics buffet
CQ-DEPEND=CL:*191319

Change-Id: I9c1721cd2179ba3b389dd94ef181370eec98ed2e
Reviewed-on: https://chromium-review.googlesource.com/239251
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2015-01-14 03:11:25 +00:00
Steve Fung
8ab89c5bfe metrics: Fix metrics_daemon Meminfo callback interval
With the switch from the glib run loop to base::MessageLoop, the
interval for scheduling Meminfo callbacks was incorrectly set to
milliseconds.  Fix it back to seconds.

BUG=chromium:445573
TEST=strace shows metrics_daemon sleep for 30 seconds between
     collecting statistics

Change-Id: I4b4b597273d3cf04b9972011dd0a7386ea14233d
Reviewed-on: https://chromium-review.googlesource.com/238466
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
2015-01-07 05:13:28 +00:00
Steve Fung
e86591e585 metrics: Convert Metrics to DBusDaemon
In order to remove glib, convert Metrics from the glib message loop to
DBusDaemon, which is based on base::MessageLoop.  Also use the DBusDaemon's
dbus::Bus object directly to set up the CrashReporter signal handling, as
the ObjectProxy used by chromeos-dbus-bindings requires all signals be sent
from registered name owners.

BUG=chromium:431838
TEST=Unittests and hwtests pass.
TEST=`test_that -b panther <IP> platform_MetricsUploader` passes
CQ-DEPEND=CL:236652

Change-Id: I6bc1f66999a43065b0d48325b031cd36bb782b76
Reviewed-on: https://chromium-review.googlesource.com/234359
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
2014-12-22 21:50:32 +00:00
Alex Vakulenko
73b40b468b Update libchrome to r307740 and fix build errors
Updated libchrome, libchrome_crypto, metrics, feedback to the
latest revisions from Chrome (r307740).

Fixed build breaks due to the changes in upstream code:

- scope_ptr no longer needs explicit PassAs<T>() calls.
- scope_ptr<T> no longer has implicit conversion to T*.
  Must use scope_ptr<T>::get() instead.
- base/file_util.h moved to base/files/file_util.h
- ARRAYSIZE_UNSAFE() removed in favor of arraysize()
- base::AppendToFile() and base::WriteFileDescriptor() now
  return bool instead of the number of bytes written.
- dbus::Bus::AddFilterFunction() now returns void.
- C++11 features are enabled in libchromeos, so all targets
  linking with it now have to support C++11
- OVERRIDE macro is removed in favor of native C++11
  'override' keyword.

BUG=chromium:416628, chromium:411508
TEST=Build the world on x86, x64, ARM. The following builders
     were tried:
       x86-generic-full amd64-generic-full arm-generic-full
       amd64-generic-asan daisy-full nyan-full pre-cq-group
       daisy-release-group sandybridge-release-group
       pineview-release-group
CQ-DEPEND=CL:234450,CL:234980

Change-Id: I374bebe2211d533c4431c82efb8be1cdcb1f405d
Reviewed-on: https://chromium-review.googlesource.com/234440
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2014-12-15 07:18:09 +00:00
Alex Vakulenko
788d3b6365 metrics: fork metrics sources from Chromium source base
In preparation to libchrome uprev, fork off non-protobuf code
from Chromium's metrics component into platform2/metrics.

The current version of Chromium's metrics component has been
significantly refactored and pieces of functionality that
Chromium OS was dependant on (e.g. MetricsLogBase class) has
been removed completely.

So, taking the r293518 version we have been using for a while
and putting it as part of platform2/metrics now.

BUG=None
TEST=FEATURES=test emerge-link metrics

Change-Id: Ib46ac1dff2e2b9cc881e4787b3c6b6250f0bf9c4
Reviewed-on: https://chromium-review.googlesource.com/234635
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
2014-12-12 21:38:08 +00:00
Alex Deymo
7845a57134 Include the implemented header first in all projects.
The Google C++ style guide dictates that foo.cc and foo_unittest.cc
should include foo.h in the first place, so missing headers in foo.h
are detected with a compile error of the module implementing them and
not when another module uses them.

This CL sweeps across all the .cc file in platform2 enforcing this.

BUG=None
TEST=cbuildbot amd64-generic

Change-Id: I41835835caba13f54c3c844ecf552eb0e47efa9d
Reviewed-on: https://chromium-review.googlesource.com/228894
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2014-11-12 19:56:58 +00:00
Nathan Bullock
d78f3df6bc libchromeos: void OsReleaseReader.Load()
Previously OsReleaseReader returned a bool, which meant that code that
called load wanted to CHECK the return values and possibly log warning
messages, etc. This was unecessary since OsReleaseReader.Load never
returns false.

TEST=unittests
BUG=none

Change-Id: I7064c6a788897b5d5c687d6c9c5f4e03d4ca21a7
Reviewed-on: https://chromium-review.googlesource.com/223990
Reviewed-by: Bertrand Simonnet <bsimonnet@google.com>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
2014-10-18 01:39:05 +00:00
Bertrand SIMONNET
cac74e122f metrics: use TimeDelta for upload_interval
Use TimeDelta instead of int interpreted as seconds.

BUG=None
TEST=Unittests.

Change-Id: I18db8d558303291ab86b26c68c89203e0364b623
Reviewed-on: https://chromium-review.googlesource.com/222611
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2014-10-15 00:10:07 +00:00
Bertrand SIMONNET
71a62efc54 metrics: add support for other product id
metrics_uploader should use the GOOGLE_METRICS_PRODUCT_ID field from os-release
whenever possible instead of the default Chrome product id.

BUG=chromium:415744
TEST=FEATURES=test emerge-gizmo metrics succeeds.
TEST=test_that platform_MetricsUploader succeeds.

CQ-DEPEND=CL:221963

Change-Id: I69b1a6ca766048ad80d93008a2fe3b18879bf1da
Reviewed-on: https://chromium-review.googlesource.com/221953
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2014-10-10 06:54:05 +00:00
Steve Fung
67906c6bbb metrics: remove gflags dependency
We are switching to using chromeos/flag_helper.h instead to standardize the
code everywhere.

BUG=chromium:375017
TEST=`FEATURES=test emerge-panther metrics`
TEST=`cbuildbot --remote --hwtest -p 'chromiumos/platform2'
      falco-paladin` passes

Change-Id: Icd08f65fd639e82ac6fe1581c763d60a189db827
Reviewed-on: https://chromium-review.googlesource.com/221757
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
2014-10-07 05:53:18 +00:00
Nathan Bullock
e812249cab metrics: protobufs need to be uploaded as binary
TEST=manually tested on panther_embedded
BUG=none

Change-Id: Id07952d2b015c4199344556686218a78b8d79193
Reviewed-on: https://chromium-review.googlesource.com/221060
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
2014-10-02 20:51:01 +00:00
Nathan Bullock
52d9edb590 metrics: 'Send' method crashes on NULL ErrorPtr
TEST=manually tested on panther_embedded
BUG=none

Change-Id: Iced380180918839d34a46e1cb2743a4cffdd5b4c
Reviewed-on: https://chromium-review.googlesource.com/220780
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
2014-10-01 19:47:24 +00:00
Alex Deymo
dfea2f8992 Remove '../platform2/' from platform2 relative paths in gyp files.
The paths in platform2 gyp files are relative to the gyp file so they
don't require to have '../platform2/' in them.

BUG=None
TEST=cbuildbot amd64-generic-full arm-generic-full

Change-Id: I4da32969fc4956df14e9d3685f790565cd33d20f
Reviewed-on: https://chromium-review.googlesource.com/219788
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
2014-09-25 04:10:00 +00:00
Nathan Bullock
dc1ef3c356 metrics: read /sys/class/block/*/stat correctly
TEST=unit tests, manual tested on panther_embedded
BUG=chromium:415118

Change-Id: I849a9b7849a27d29d9d24bb1575f113e43716bd5
Reviewed-on: https://chromium-review.googlesource.com/218504
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
2014-09-19 03:00:11 +00:00
Nathan Bullock
0be0f736d7 metrics: Add more log messages to uploader
TEST=compiled
BUG=none

Change-Id: Iee49b104d0b6214e035f70fa108ae7464bd7988f
Reviewed-on: https://chromium-review.googlesource.com/217338
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Nathan Bullock <nathanbullock@google.com>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
2014-09-19 02:59:32 +00:00
Bertrand SIMONNET
eb815be5a9 metrics: Fix metrics_uploader on VMs
metrics_uploader must be in testing mode so that it does not try to grab the
real hardware id (not available on VMs).

BUG=chromium:413256
TEST=FEATURES=test emerge-amd64-generic metrics.
TEST=platform_MetricsUploader succeeds on a gizmo VM.

Change-Id: I9e508c8661dfdb7933161b0d41ef4cf9bd7db2c6
Reviewed-on: https://chromium-review.googlesource.com/217760
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
2014-09-17 01:25:07 +00:00
Ben Chan
51bf92a3cb Update code to include base/files/file_util.h
file_util.h was moved from base to base/files
(https://codereview.chromium.org/468253002). This CL updates platform2
code to include base/files/file_util.h instead of base/file_util.h.

BUG=chromium:411001
TEST=Trybot run on paladin, release, and chromiumos-sdk builders.

Change-Id: I488925b54615e131e508a460dc1a27f88168f936
Reviewed-on: https://chromium-review.googlesource.com/216851
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
2014-09-09 21:00:34 +00:00
Ben Chan
37595f893f Update to build against libchrome-293518.
libchrome is updated from revision 271506 to 293518. This CL updates
platform2 code to build against libchrome-293518 with the following
changes:

- LOG_ERROR_REPORT is removed
  (https://codereview.chromium.org/331143007)

- StringToLowerASCII is moved to base namespace
  (https://codereview.chromium.org/448853002)

BUG=chromium:411001
CQ-DEPEND=CL:216584
CQ-DEPEND=CL:216585
CQ-DEPEND=CL:216586
CQ-DEPEND=CL:216511
CQ-DEPEND=CL:217084
CQ-DEPEND=CL:217085
TEST=Trybot run on paladin, release, and chromiumos-sdk builders.

Change-Id: I9fbdad30b3a7c79c1ec4e208664b8befea31a3ec
Reviewed-on: https://chromium-review.googlesource.com/216589
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
2014-09-09 21:00:00 +00:00
Bertrand SIMONNET
43bee50572 metrics: Document uploader functionality
Metrics uploader can be activated with the metrics_uploader use flag, update
README to reflect that.
Also fix the section about activating metrics.

BUG=None
TEST=None

Change-Id: I2c6d0abe6536eb419c5b49f149b6d3f097670325
Reviewed-on: https://chromium-review.googlesource.com/216631
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2014-09-09 13:49:40 +00:00
Bertrand SIMONNET
4bcffd3d70 metrics: add bsimonnet to OWNERS
BUG=None
TEST=None

Change-Id: I9e89ac959c352560a29e46fa3ea56a91a65c8941
Reviewed-on: https://chromium-review.googlesource.com/216583
Reviewed-by: Daniel Erat <derat@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
2014-09-09 13:49:36 +00:00
Alex Vakulenko
ec991df012 metrics: Switch uploader to use http_utils from libchromeos
Removed explicit dependency on libcurl from metrics and using
chromeos::http::PostText() function instead.

BUG=chromium:411076
TEST=FEATURES=test emerge-link metrics

Change-Id: Ida883fa18d266e9bb87c3a4271e57d44c9308c79
Reviewed-on: https://chromium-review.googlesource.com/216526
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2014-09-09 13:49:28 +00:00
Ben Chan
652d6971b1 metrics: Include base/macros.h instead of base/basictypes.h
metrics no longer uses the integer types from base/basictypes.h. It
should simply include base/macros.h for the DISALLOW_COPY_AND_ASSIGN
macro instead.

BUG=None
TEST=`FEATURES=test emerge-$BOARD metrics platform2`

Change-Id: Id325bcb6c9d3318b5b78e42a04da9c53d0a8c3ce
Reviewed-on: https://chromium-review.googlesource.com/216349
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
2014-09-04 15:46:34 +00:00
Yunlian Jiang
e2c2d8947b metrics: fix memory leaks in unittest.
This fixes the memory leaks exposed in unittest.

BUG=chromium:408309
TEST=USE="clang asan" FEATURES="test" emerge-amd64-generic metrics
   passes.

Change-Id: I6f612499d7e67fa9171b95de4dbfac4e7f6698a0
Reviewed-on: https://chromium-review.googlesource.com/215887
Reviewed-by: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@chromium.org>
2014-09-03 19:31:45 +00:00
Bertrand SIMONNET
ef3aebe6a7 metrics: Activate the uploader for embedded boards
Now that the code is under tests, add an extra flag to metrics_daemon.conf to
enable the uploader when chrome is not available.

BUG=chromium:389222
TEST=build and deploy metrics on gizmo. metrics_daemon is running and the
metrics are reported.

CQ-DEPEND=CL:214286

Change-Id: I5daa72a95c3bf1c15387a40c6964be44bc6da082
Reviewed-on: https://chromium-review.googlesource.com/214285
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
2014-09-01 13:49:39 +00:00
Alex Vakulenko
14595032aa platform2: Replace NULL with nullptr in minor components
Replace NULL with nullptr in C++11-enabled components of platform2
that don't have too many occurrences of NULL. Other major
"offenders" will be handled separately.

BUG=None
TEST=FEATURES=test emerge-link app-shell-launcher buffet easy-unlock platform2 metrics wimax_manager

Change-Id: I61b25a057e3d6865908bc74f9f3d4cb55e08af26
Reviewed-on: https://chromium-review.googlesource.com/214837
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2014-08-29 21:58:46 +00:00
Yunlian Jiang
b1640eee93 metrics: fix memory leaks in unittest.
This fixes the memory leaks exposed in unittest.

BUG=chromium:408309
TEST=The memory leak related to |sender_| is gone.

Change-Id: I92970d0560f6ccd1ccd7f5022ece8cc5eba4a674
Reviewed-on: https://chromium-review.googlesource.com/214578
Reviewed-by: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@chromium.org>
2014-08-29 21:55:22 +00:00
Thiemo Nagel
0b8cc1c952 metrics: Improve metrics_client usage docs.
BUG=chromium:393334
TEST=unit tests passed

Change-Id: Iaf6b75cba2fddce5ea5f770d227ed5df70c9bed8
Reviewed-on: https://chromium-review.googlesource.com/213471
Reviewed-by: Daniel Erat <derat@chromium.org>
Commit-Queue: Thiemo Nagel <tnagel@chromium.org>
Tested-by: Thiemo Nagel <tnagel@chromium.org>
2014-08-22 00:53:54 +00:00
Ben Chan
8c56c5ed5f platform2: Remove legacy inherit-review-settings-ok files.
BUG=None
TEST=Trybot run on paladin, release, and chromiumos-sdk builders.

Change-Id: I11a13e64cd1fd9e3394d1f298425d29204bb06aa
Reviewed-on: https://chromium-review.googlesource.com/212840
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
2014-08-18 03:06:06 +00:00
Alex Vakulenko
e8a8e30b25 metrics: Replace 'OVERRIDE' with 'override' and fix linter
Replace OVERRIDE macro with native C++ 'override' keyword.
Also fixed the style issue of using both 'override' and 'virtual'
on member function overrides. Only one is required and cpplint
complains if both are specified now.

And since gobi-chromo-plugin is the only project that uses
libmetrics and is not C++11 yet, enabled C++11 features
in its makefile to allow for the 'override' keywords to
compile in the included metrics/metrics_library.h header.

BUG=None
TEST=USE="cellular buffet" ./build_packages

Change-Id: I28dace6dc4bcb07386632eaed890ce41564e8144
Reviewed-on: https://chromium-review.googlesource.com/212494
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
2014-08-16 05:26:56 +00:00