Внедрение инструментов мониторинга в ваше приложение с помощью Ключ-АСТРОМ OpenKit

Материал из Документация Ключ-АСТРОМ

Данные мониторинга, передаваемые через Ключ-АСТРОМ OpenKit, инкапсулируются в сущность, представляющую ваше приложение, и называются пользовательским приложением. Поэтому для мониторинга вашего приложения вам необходимо определить и инструментировать пользовательское приложение, следуя приведенным ниже инструкциям.

Создание и внедрение инструментария в приложение

Чтобы создать пользовательское приложение в Ключ-АСТРОМ и внедрить в него необходимые инструменты:

  1. В Ключ-АСТРОМ перейдите в раздел Пользовательские приложения.
  2. Выберите Создать пользовательское приложение.
  3. Введите название для вашего пользовательского приложения и выберите значок для визуального представления вашего приложения в веб-интерфейсе Ключ-АСТРОМ.
  4. Выберите Мониторинг пользовательского приложения. Откроется страница настроек вашего пользовательского приложения.
  5. В настройках приложения выберите Мастер инструментирования, а затем выберите свою технологию, чтобы загрузить последнюю версию библиотеки OpenKit.
  6. Используйте загруженную библиотеку, а также URL-адрес и идентификатор приложения, предоставленные в мастере инструментирования, чтобы инструментировать ваше приложение.
  7. Необязательно В мастере инструментирования выберите пункт Просмотр входящих сигналов, чтобы отображать входящие сигналы по мере их поступления с задержкой всего в несколько секунд. Этот режим просмотра также предоставляет информацию о потенциальных проблемах.

Ниже приведён простой пример, демонстрирующий, как использовать Ключ-АСТРОМ OpenKit для отправки данных мониторинга в Ключ-АСТРОМ. Для получения более подробной информации см. раздел Методы API Ключ-АСТРОМ OpenKit.

Java
// Obtain an OpenKit instance

String applicationID = "application-id";                // Your application's ID

long deviceID = 42;                                     // Replace with a unique value per device/installation

String endpointURL = "https://tenantid.beaconurl.com/mbeacon";  // astromkey endpoint URL

OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

        .withApplicationVersion("1.0.0.0")

        .withOperatingSystem("Windows 10")

        .withManufacturer("MyCompany")

        .withModelID("MyModelID")

        .build();

// Wait up to 10 seconds for OpenKit to complete initialization

long timeoutInMilliseconds = 10 * 1000;

boolean success = openKit.waitForInitCompletion(timeoutInMilliseconds);

// Create session

String clientIP = "8.8.8.8";

Session session = openKit.createSession(clientIP);

// Identify user

session.identifyUser("jane.doe@example.com");

// Create root and child actions

String rootActionName = "rootActionName";

RootAction rootAction = session.enterAction(rootActionName);

String childActionName = "childAction";

Action childAction = rootAction.enterAction(childActionName);

// Leave action

childAction.leaveAction();

rootAction.leaveAction();

// Finish session

session.end();

// Terminate OpenKit instance

openKit.shutdown();

.NET
// Obtain an OpenKit instance

string applicationID = "application-id";                        // Your application's ID

long deviceID = 42L;                                            // Replace with a unique value per device/installation

string endpointURL = "https://tenantid.beaconurl.com/mbeacon";  // astromkey endpoint URL

IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

    .WithApplicationVersion("1.0.0.0")

    .WithOperatingSystem("Windows 10")

    .WithManufacturer("MyCompany")

    .WithModelID("MyModelID")

    .Build();

// Wait up to 10 seconds for OpenKit to complete initialization

int timeoutInMilliseconds = 10 * 1000;

bool success = openKit.WaitForInitCompletion(timeoutInMilliseconds);

// Create session

string clientIP = "8.8.8.8";

ISession session = openKit.CreateSession(clientIP);

// Identify user

session.IdentifyUser("jane.doe@example.com");

// Create root and child actions

string rootActionName = "rootActionName";

IRootAction rootAction = session.EnterAction(rootActionName);

string childActionName = "childAction";

IAction childAction = rootAction.EnterAction(childActionName);

// Leave action

childAction.LeaveAction();

rootAction.LeaveAction();

// Finish session

session.End();

// Terminate OpenKit instance

openKit.ShutDown();

C++
// Obtain an OpenKit instance

const char* applicationID = "application-id";                        // Your application's ID

int64_t deviceID = 42;                                               // Replace with a unique value per device/installation

const char* endpointURL = "https://tenantid.beaconurl.com/mbeacon";  // astromkey endpoint URL

std::shared_pointer<openkit::IOpenKit> openKit =

    openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

        .withApplicationVersion("1.0.0.0")

        .withOperatingSystem("Windows 10")

        .withManufacturer("MyCompany")

        .withModelID("MyModelID")

        .build();

// Wait up to 10 seconds for OpenKit to complete initialization

int64_t timeoutInMilliseconds = 10 * 1000;

bool success = openKit->waitForInitCompletion(timeoutInMilliseconds);

// Create session

const char* clientIP = "8.8.8.8";

std::shared_ptr<openkit::ISession> session = openKit->createSession(clientIP);

// Identify user

session->identifyUser("jane.doe@example.com");

// Create root and child actions

const char* rootActionName = "rootActionName";

std::shared_ptr<IRootAction> rootAction = session->enterAction(rootActionName);

const char* childActionName = "childAction";

std::shared_ptr<IRootAction> childAction = rootAction->enterAction(childActionName);

// Leave action

childAction->leaveAction();

rootAction->leaveAction();

// Finish session

session->end();

// Terminate OpenKit instance

openKit->shutdown();

C
// Obtain an OpenKit instance

const char* applicationID = "application-id";                        // Your application's ID

int64_t deviceID = 42;                                               // Replace with a unique value per device/installation

const char* endpointURL = "https://tenantid.beaconurl.com/mbeacon";  // astromkey endpoint URL

struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);

useApplicationVersionForConfiguration(configurationHandle, "1.0.0.0");

useOperatingSystemForConfiguration(configurationHandle, "Windows 10");

useManufacturerForConfiguration(configurationHandle, "MyCompany");

useModelIDForConfiguration(configurationHandle, "MyModelID");

struct OpenKitHandle* openKit = createastromkeyOpenKit(configurationHandle);

// Wait up to 10 seconds for OpenKit to complete initialization

int64_t timeoutInMilliseconds = 10 * 1000;

bool success = waitForInitCompletionWithTimeout(openKit, timeoutInMilliseconds);

// Create session

const char* clientIP = "8.8.8.8";

struct SessionHandle* session = createSession(openKit, clientIP);

// Identify user

identifyUser(session, "jane.doe@example.com");

// Create root and child actions

const char* rootActionName = "rootActionName";

struct RootActionHandle* rootAction = enterRootAction(session, rootActionName);

const char* childActionName = "childAction";

struct ActionHandle* childAction = enterAction(rootAction, childActionName);

// Leave action

leaveAction(childAction);

leaveRootAction(rootAction);

// Finish session

endSession(session);

// Terminate OpenKit instance

shutdownOpenKit(openKit);

JavaScript
// Obtain an OpenKit instance

const endpointURL: string = 'https://tenantid.beaconurl.com/mbeacon'; // astromkey endpoint URL

const applicationID: string = 'application-id'; // Your application's ID

const deviceID: number = 42; // Replace with a unique value per device/installation

const openkit = new OpenKitBuilder(endpointURL, applicationID, deviceID)

    .withApplicationVersion('1.0.0.0')

    .withOperatingSystem("Windows 10")

    .withManufacturer("MyCompany")

    .withModelID("MyModelID")

    .build();

const timeoutInMilliseconds = 10 * 1000;

openKit.waitForInit((success) => {

    if (success) {

        // Create session

        const clientIP = '8.8.8.8';

        const session: Session = openkit.createSession(clientIP);

        // Identify user

        session.identifyUser('jane.doe@example.com');

        // Create root and child actions

        string rootActionName = 'rootActionName';

        const rootAction = session.enterAction(rootActionName);

        string childActionName = 'childAction';

        const childAction = rootAction.enterAction(childActionName);

        // Leave action

        childAction.leaveAction();

        rootAction.leaveAction();

        // Finish session

        session.end();

        // Terminate OpenKit instance

        openkit.shutdown();

    }

}, timeoutInMilliseconds);

Идентификатор приложения и URL-адрес конечной точки можно найти в мастере инструментирования (в настройках приложения выберите «Мастер инструментирования»).

Для пользовательских приложений идентификация пользователя осуществляется путем передачи параметра deviceID, который должен быть уникальным для каждого пользователя или устройства. Затем параметр deviceID помечается как внутренний идентификатор пользователя в веб-интерфейсе Ключ-АСТРОМ.