You are here

public function Telemetry::sendTelemetry in Lightning Core 8.4

Same name and namespace in other branches
  1. 8.3 modules/acquia_telemetry/src/Telemetry.php \Drupal\acquia_telemetry\Telemetry::sendTelemetry()

Creates and sends an event to Amplitude.

Parameters

string $event_type: The event type. This accepts any string that is not reserved. Reserved event types include: "[Amplitude] Start Session", "[Amplitude] End Session", "[Amplitude] Revenue", "[Amplitude] Revenue (Verified)", "[Amplitude] Revenue (Unverified)", and "[Amplitude] Merged User".

array $event_properties: (optional) Event properties.

Return value

bool TRUE if event was successfully sent, otherwise FALSE.

Throws

\Exception Thrown if state key acquia_telemetry.loud is TRUE and request fails.

See also

https://amplitude.zendesk.com/hc/en-us/articles/204771828#keys-for-the-e...

File

modules/acquia_telemetry/src/Telemetry.php, line 136

Class

Telemetry
Telemetry service.

Namespace

Drupal\acquia_telemetry

Code

public function sendTelemetry($event_type, array $event_properties = []) {
  $event = $this
    ->createEvent($event_type, $event_properties);

  // Failure to send Telemetry should never cause a user facing error or
  // interrupt a process. Telemetry failure should be graceful and quiet.
  try {
    return $this
      ->sendEvent($event);
  } catch (\Exception $e) {
    if ($this->state
      ->get('acquia_telemetry.loud')) {
      throw new \Exception($e
        ->getMessage(), $e
        ->getCode(), $e);
    }
    return FALSE;
  }
}