blob: 5bcd130ab050a664cbee2e996b6306a6a067afec [file]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# pylint: disable=line-too-long
import logging
import os
import sys
# Since event_mon depends on ts_mon, we reuse module setup (__init__.py) from
# the gae_ts_mon, which configures infra_libs as if it was imported directly.
# We expect the users of gae_event_mon to symlink both this and gae_ts_mon
# modules into their apps.
import gae_ts_mon
# Additional infra_libs configuration for event_mon.
import infra_libs.ts_mon.httplib2_utils
sys.modules['infra_libs'].InstrumentedHttp = (
infra_libs.ts_mon.httplib2_utils.InstrumentedHttp)
sys.modules['infra_libs'].event_mon = sys.modules[__package__]
sys.modules['infra_libs.event_mon'] = sys.modules[__package__]
from google.appengine.api import modules
from google.appengine.api.app_identity import app_identity
def initialize(service_name):
is_local_unittest = ('expect_tests' in sys.argv[0])
if is_local_unittest:
appengine_name = 'unittest'
service_name = 'unittest'
hostname = 'unittest'
else: # pragma: no cover
appengine_name = app_identity.get_application_id()
hostname = '%s, %s' % (modules.get_current_module_name(),
modules.get_current_version_name())
# Only send events if we are running on the actual AppEngine.
if os.environ.get('SERVER_SOFTWARE', '').startswith('Google App Engine'):
run_type = 'prod' # pragma: no cover
else:
run_type = 'dry'
config.setup_monitoring(run_type, hostname, service_name, appengine_name)
logging.info(
'Initialized event_mon with run_type=%s, hostname=%s, service_name=%s, '
'appengine_name=%s', run_type, hostname, service_name, appengine_name)
# The remaining lines are copied from infra_libs/event_mon/__init__.py.
from infra_libs.event_mon.config import add_argparse_options
from infra_libs.event_mon.config import close
from infra_libs.event_mon.config import set_default_event, get_default_event
from infra_libs.event_mon.config import process_argparse_options
from infra_libs.event_mon.config import setup_monitoring
from infra_libs.event_mon.monitoring import BUILD_EVENT_TYPES, BUILD_RESULTS
from infra_libs.event_mon.monitoring import EVENT_TYPES, TIMESTAMP_KINDS
from infra_libs.event_mon.monitoring import Event
from infra_libs.event_mon.monitoring import get_build_event
from infra_libs.event_mon.monitoring import send_build_event
from infra_libs.event_mon.monitoring import send_events
from infra_libs.event_mon.monitoring import send_service_event
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import ChromeInfraEvent
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import BuildEvent
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import ServiceEvent
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import InfraEventSource
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import CodeVersion
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import CQEvent
from infra_libs.event_mon.protos.chrome_infra_log_pb2 import MachineProviderEvent
from infra_libs.event_mon.protos.log_request_lite_pb2 import LogRequestLite