lib/core/heartbeat.rb (22 lines of code) (raw):

# # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. # # frozen_string_literal: true require 'connectors/connector_status' require 'connectors/registry' require 'core/connector_settings' require 'core/elastic_connector_actions' module Core class Heartbeat class << self def send(connector_settings) doc = { :last_seen => Time.now } if connector_settings.connector_status_allows_sync? connector_instance = Connectors::REGISTRY.connector(connector_settings.service_type, connector_settings.configuration) doc[:status] = connector_instance.is_healthy? ? Connectors::ConnectorStatus::CONNECTED : Connectors::ConnectorStatus::ERROR message = "Health check for 3d party service failed for connector [#{connector_settings.id}], service type [#{connector_settings.service_type}]. Check the application logs for more information." doc[:error] = doc[:status] == Connectors::ConnectorStatus::ERROR ? message : nil end Core::ElasticConnectorActions.update_connector_fields(connector_settings.id, doc) end end end end