Salesforce Insights
Salesforce Insights позволяет администраторам Salesforce и ИТ-специалистам отслеживать состояние своей среды Salesforce.
Настройка
Узнайте, как настроить Salesforce Insights и какие данные он может собирать.
Для использования расширения необходимо выполнить следующие требования.
Учетная запись Salesforce
Расширение Salesforce может собирать четыре типа данных Salesforce. Выберите каждую конфигурацию для получения более подробной информации.
- Настройка потоковой передачи событий позволяет отслеживать использование вашей учетной записи Salesforce CRM.
- Параметр EventLogFile позволяет импортировать файлы логов из Salesforce в Ключ-АСТРОМ.
- Настройка API -запросов позволяет загружать данные, полученные с помощью языка запросов объектов Salesforce (SOQL), в Ключ-АСТРОМ. Данные загружаются в Ключ-АСТРОМ в виде событий логов или бизнес-событий.
- Настройка событий платформы позволяет подписаться на пользовательские события платформы Salesforce и передавать их в Ключ-АСТРОМ в качестве бизнес-событий.
Аутентификация
Выберите один из трех методов аутентификации, который лучше всего соответствует вашим потребностям.
Подключенное приложение
В этом режиме расширение подключается как подключенное приложение. Это рекомендуемый свособ аутентификации.
Технически приложение использует аутентификацию OAuth 2.0 JWT Bearer Flow.
Ключ-АСТРОМ запросит
- Пользовательский ключ подключенного приложения.
- Закрытый ключ подключенного приложения.
- Subject токена JWT — это имя пользователя, входящего в профиль подключенного приложения .
Требования
openssl— для генерации сертификата, не требуется, если у вас уже есть сертификат и закрытый ключ.
Примечание: в Windows, если у вас установлен git, у вас также должна быть копия openssl.
Вы должны найти её в директории, например C:\Program Files\Git\mingw64\bin, в зависимости от вашей установки.
Сертификат
Подключенное приложение должно иметь сертификат, который мы впоследствии аутентифицируем в Salesforce, используя закрытый ключ этого сертификата.
Эта команда генерирует сертификат и закрытый ключ:
| openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem |
- Файл
cert.pemбудет позже добавлен в подключенное приложение. - Файл
key.pemбудет использоваться Ключ-АСТРОМ для аутентификации в Salesforce.
Создайте подключенное приложение
В Salesforce Lightning
- В разделе Настройка > Приложения > Внешние клиентские приложения > Параметры убедитесь, что опция
Allow creation of connected appsвключена. - Выберите Новое подключенное приложение.
Назовите приложение и добавьте адрес электронной почты контакта. В разделе API (Включите настройки OAuth) :
- Установите флаг «Включить настройки OAuth» .
- Если URL-адрес обратного запроса не используется, вы можете указать следующее:
http://localhost - Установите флаг «Использовать цифровые подписи» .
- Загрузите сгенерированный выше файл
cert.pemв папкуUse digital signatures. - В разделе «Выбранные области действия OAuth» добавьте следующие области действия:
- Управление данными об использовании через API
- Выполняйте запросы в любое время (refresh_token, offline_access)
- Оставьте все остальные настройки по умолчанию и выберите «Сохранить».
Политика OAuth
- Настройте политику OAuth, разрешив доступ пользователям.
- В разделе Приложения > Диспетчер приложений найдите подключенное приложение и выберите Управление.
- Нажмите кнопку Редактировать правила.
- В разделе Политики OAuth выбранные пользователи, одобренные администратором, проходят предварительную авторизацию .
- Выберите Сохранить.
Утвержденные пользователи
Определите пользователей, которые могут использовать приложение. Это можно сделать, добавив профили в список назначения профилей приложения.
- На странице подключенного приложения перейдите в раздел Профили > Управление профилями.
- Добавьте профили, которые смогут использовать подключенное приложение. Примечание: позже любое имя пользователя из этих профилей можно будет использовать в качестве темы при настройке расширения.
Для потоковой передачи событий профилям необходимы следующие разрешения:
- Общие права доступа пользователя
View Real-Time Event Monitoring Data
- Административные разрешения
Customize ApplicationView All Data
Чтобы ознакомиться с необходимой документацией по правам доступа, см. раздел «Включение доступа к мониторингу событий в реальном времени».
Имя пользователя и пароль
- Обычный пользователь Salesforce с правами доступа для необходимой конфигурации (потоковая передача событий, файл логов событий или SOQL).
- Пароль пользователя.
- Токен безопасности для пользователя.
Обратите внимание, что этот вариант не рекомендуется, поскольку пароли пользователей и токены безопасности могут меняться; обычно он используется только для тестирования расширения.
ID клиента
Для аутентификации по ID клиента выберите «Включить поток учетных данных клиента» в настройках подключенного приложения или внешнего клиентского приложения и укажите ключ потребителя и секрет пользователя.
Вам также потребуется выбрать пользователя, от имени которого будет запускаться приложение. Сделайте это в разделе Диспетчер приложений > Управление > Изменение политик > Поток учетных данных клиента > Запуск от имени.
Обратите внимание, что это не так безопасно, как подключенное приложение с сертификатом.
Включение расширения
Для активации расширения Salesforce необходимо наличие среды АктивногоШлюза.
- Найдите расширение в разделе Расширеня и активируйте его.
- На странице Конфигурация выберите Добавить конфигурацию мониторинга.
- Выберите группу АктивногоШлюза.
- Одному из этих серверов потребуется получить доступ к API Salesforce, который находится в открытом доступе.
- URL-адреса для входа:
https://login.salesforce.comилиhttps://test.salesforce.com - Конечные точки публикации/подписки:
api.pubsub.salesforce.com:7443илиapi.deu.pubsub.salesforce.com:7443 - При необходимости прокси-сервер можно настроить позже.
| Параметр | Описание |
|---|---|
| Endpoint name | Выберите понятное имя для идентификации конечной точки. |
| Login URL | Выберите режим работы: производственный или тестовый. |
| Pub/Sub URL | Выберите глобальную конечную точку или конечную точку в Европе (Франкфурт). |
| Reporting Mode | Бизнес события, логи событий, OpenKit (RUM) |
| Custom Application ID | ID пользовательского приложения Ключ-АСТРОМ для созданного вами ранее приложения
(требуется только в том случае, если используется управляемая среда и OpenKit в качестве режима Reporting Mode). |
| Authentication type | Выберите имя пользователя и пароль или подключенное приложение. |
| Events filtering | Выберите, какие события в реальном времени вы хотите отправлять в Ключ-АСТРОМ; по умолчанию включены все события. |
| Usernames Blocklist | Необязательный список имен пользователей, которые следует игнорировать; используйте его, чтобы заблокировать пользователей автоматизации/API от отправки отчетов. |
| Proxy | Дополнительный прокси-сервер; на случай, если АктивныйШлюз не сможет подключиться к URL-адресам Salesforce. |
Ввод данных в Salesforce
Выберите один из четырех методов ввода данных в зависимости от ваших потребностей в мониторинге.
Потоковая передача событий
Захватывайте события в реальном времени из Salesforce и отправляйте их в Ключ-АСТРОМ в качестве бизнес-событий.
Функция приема данных RUM должна использоваться только в управляемых средах.
- Включите потоковую передачу событий в реальном времени.
- В разделе Настройка > Диспетчер событий включите потоковую передачу данных для событий, которые вы хотите записывать.
- Получите учетные данные, необходимые для подключения расширения к Salesforce.
Обеспечьте возможность использования следующих сценариев:
- Отслеживание перехвата сессий, подбора учетных данных и аномальных событий.
- Отслеживание важных наборы разрешений и изменения.
- Самое медленное время отклика страниц в Lightning или Classic.
- Какие файлы загружаются, скачиваются и кем.
- Какие отчеты используются чаще всего, кто их запускает, какие запросы применяются.
- Какие API-запросы выполняются чаще всего.
- Какие браузеры используют пользователи.
- Откуда осуществляется доступ к Salesforce.
- Сколько пользователей в настоящее время используют платформу, и каков пользовательский опыт.
Расширение использует API Salesforce Pub/Sub для отображения событий в режиме потоковой передачи событий. Эти события захватываются и отправляются как бизнес-события, или, в случае OpenKit, как действия пользователя, при этом все их соответствующие свойства отправляются как свойства действий .
Подробное описание каждого события и его свойств см. в документации Salesforce.
Зафиксированные события на данный момент
| События | Описание |
|---|---|
| ApiAnomalyEvent | Отслеживайте аномалии в том, как пользователи совершают вызовы API. |
| ApiEventStream | Отслеживайте запросы пользователей к API в вашей организации. |
| BulkApiResultEvent | Отслеживайте момент загрузки пользователем результатов пакетного запроса к API. |
| ConcurLongRunApexErrEvent | Отслеживайте случаи возникновения ошибки Concurrent Long Running Apex. |
| CredentialStuffingEvent | Отслеживайте случаи успешного входа пользователя в Salesforce во время выявленной атаки с использованием подбора учетных данных. |
| FileEvent | Отслеживайте действия с файлами. Например, отслеживайте, когда пользователь скачивает файл или просматривает его. |
| LightningUriEventStream | Отслеживайте события создания, доступа, обновления или удаления записей пользователями в Salesforce Lightning. |
| ListViewEventStream | Отслеживайте, когда пользователь обращается к данным в виде списков. |
| LoginAsEventStream | Отслеживайте случаи, когда администратор входит в вашу организацию под именем другого пользователя. |
| LoginEventStream | Отслеживайте, когда пользователь входит в вашу организацию. |
| LogoutEventStream | Отслеживайте момент выхода пользователя из системы в пользовательском интерфейсе Salesforce. |
| PermissionSetEvent | Отслеживайте, когда пользователям назначаются разрешения «Изменить все данные» или «Просмотреть все данные» в рамках набора разрешений. |
| ReportAnomalyEvent | Отслеживайте аномалии в том, как пользователи создают или экспортируют отчеты. |
| ReportEventStream | Отслеживайте, когда пользователь получает доступ к данным или экспортирует их, с помощью отчетов. |
| SessionHijackingEvent | Отслеживайте случаи, когда неавторизованный пользователь получает доступ к сессии пользователя Salesforce с помощью украденного идентификатора сессии. |
| UriEventStream | Отслеживайте, когда пользователь создает, получает доступ, обновляет или удаляет запись в Salesforce Classic. |
Расширение распространяется только на события, которые Salesforce генерирует как события в режиме реального времени.
Выберите режим формирования отчетов для данных потоковой передачи событий:
Бизнес события
Для бизнес-событий все данные вводятся с помощью API бизнес-событий.
Запрос можно выполнить с помощью DQL:
| fetch bizevents
| filter event.type == "salesforce.ApiEventStream" |
Для каждого типа событий salesforce.NameOfTheEvent будут доступны все свойства, описанные в Salesforce. Например, см. свойства для ApiEventStream.
Таким образом, мы можем создавать визуализации, используя все эти свойства.
| fetch bizevents
| filter event.type == "salesforce.ApiEventStream" | summarize count(), by: {SourceIp} |
С помощью DQL можно получить список всех типов событий:
| fetch bizevents
| filter event.provider == "https://astromkey--staging.sandbox.my.salesforce.com" | summarize count(), by: {event.type} |
Пример: Получение данных о входах пользователей в систему за определенный период времени.
| fetch bizevents
| filter event.type == "salesforce.LoginEventStream" | makeTimeseries logins=count(), by:{Username}, interval: 5m | sort logins desc |
OpenKit
Для создания пользовательского приложения для получения данных:
- В Центре управления перейдите в раздел Цифровой опыт. Затем выберите Пользовательское приложения > Создать пользовательское приложение.
- Создайте собственное приложение — дайте ему имя и выберите значок.
- Выберите Добавить приложение.

- В настройках пользовательского приложения перейдите в мастер инструментирования и сохраните изменения Application ID для дальнейшего использования.

- Теперь вы можете включить расширение. Подробности смотрите в разделе Включение расширения (выше).
Данные отправляются в созданное вами фронтенд-приложение, поэтому вы можете получить к ним доступ:
- Подробная информация о сессиях
- Для получения доступа к отдельным свойствам выберите Действия пользователя > Выполнить каскадный анализ.
Для использования этих свойств в языке запросов пользовательских сессий :
- В настройках приложения перейдите в раздел Свойства сессий и действий пользователя.
- Создайте свойство. Примечание: имя должно точно совпадать с именем свойства (см. раздел События Salesforce).
Пример: Фиксация номера строки.
Запрос к объекту:
| SELECT useraction.name, SUM(longProperties.rowsprocessed) FROM useraction WHERE useraction.name STARTSWITH "Report" GROUP BY useraction.name |
EventLogFile
Захват файлов логов событий из Salesforce и их передача в Ключ-АСТРОМ в качестве логов.
- Необходимо включить функцию EventLogFile в Salesforce.
- У пользователя должны быть установлены права доступа для чтения файлов логов событий.
Подробности
- Создайте новую конфигурацию EventLogFile, выбрав Настроить EventLogFile.
Обратите внимание, что в разделе «События» по умолчанию отключена возможность захвата всех различных файлов логов. - Выберите, какие файлы логов вы хотите загрузить.
Не ожидайте получения данных в режиме реального времени при такой конфигурации. Данные логов событий в Salesforce задерживаются на несколько часов.
Визуализация
События отправляются в Ключ-АСТРОМ в виде записей логов, и по ним можно выполнять запросы с использованием DQL:
| fetch logs
| filter query.type == "EventLogFile" |
Все свойства определенного файла логов событий будут доступны.
Подробную информацию о полях см. в разделе Поддерживаемые типы событий EventLogFile.
Пример
Получите подробную информацию о событиях ApexExecution:
| fetch logs
| filter EVENT_TYPE == "ApexExecution" | fields TIMESTAMP_DERIVED, ENTRY_POINT, EXEC_TIME, CPU_TIME, DB_TOTAL_TIME, NUMBER_SOQL_QUERIES |
API-запросы (SOQL)
Выполняйте SOQL-запросы к Salesforce и загружайте данные в виде логов или бизнес-событий. Пользователь должен иметь разрешения на выполнение запросов к API Salesforce и чтение запрашиваемых объектов.
Подробности
Для импорта данных, полученных с помощью языка запросов Salesforce Object Query Language (SOQL), в Ключ-АСТРОМ,
- Выберите Настроить запросы API.
- Добавьте до 100 SOQL-запросов, которые будут выполняться с указанным интервалом. Каждый запрос имеет следующие параметры:
- Имя запроса — имя запроса, которое поможет вам найти данные этого запроса в логах Ключ-АСТРОМ в дальнейшем.
- Запрос — SOQL-запрос, который необходимо выполнить.
- Запрос должен содержать как минимум одно поле типа «дата и время».
- Заполнитель
{last_execution_timestamp}необходимо использовать для фильтрации результатов запроса и удаления дубликатов данных. - Пример:
SELECT Id, CreatedDate, Field, NewValue, OldValue FROM OpportunityFieldHistory WHERE CreatedDate > {last_execution_timestamp}
- Частота
- Частота может быть интервальной или Cron.
- Интервал — Запрос будет выполняться каждые X минут.
- Cron — Запрос будет выполнен на основе предоставленного выражения cron; для генерации выражения cron можно использовать crontab guru.
Визуализация
Рассмотрим следующую конфигурацию запроса:
| Query Name: Logins
Query: SELECT UserId, COUNT(Id) from LoginHistory WHERE LoginTime > {last_execution_timestamp} GROUP BY UserId |
Результаты можно получить с помощью DQL:
| fetch logs
| filter query.name == "Logins" |
А диаграмму можно создать с помощью:
| fetch logs
| filter query.name == "Logins" | makeTimeseries sum(toDouble(expr0)), by: {UserId}, interval: 5m |
Вы также можете получить доступ ко всем запросам и их тексту, настроенным для этого экземпляра Salesforce:
| fetch logs
| filter event.provider == "https://astromkey--staging.sandbox.my.salesforce.com" | summarize count(), by: {query.name} |
События платформы
Подпишитесь на пользовательские события платформы Salesforce и передавайте их в Ключ-АСТРОМ в качестве бизнес-событий.
Платформенные события предоставляют мощный инструмент для отправки и получения пользовательских уведомлений о событиях внутри Salesforce и во внешние системы. Эта конфигурация позволяет собирать данные о событиях в режиме реального времени из пользовательских платформенных событий, стандартных платформенных событий и событий отслеживания изменений данных.
Подробности
Для импорта событий платформы Salesforce в Ключ-АСТРОМ:
- Выберите Настроить события платформы.
- Добавьте темы, на которые вы хотите подписаться. Темы имеют следующий формат:
- Пользовательские события платформы :
/event/YourCustomEvent__e - Стандартные события платформы :
/event/LoginEventStream,/event/LogoutEventStream - Изменение захвата данных :
/data/ChangeEvents,/data/AccountChangeEvent
- Пользовательские события платформы :
- Настройте аутентификацию, используя один из поддерживаемых методов (подключенное приложение, имя пользователя и пароль или идентификатор клиента).
Варианты использования
Обеспечьте возможность использования следующих сценариев:
- Отслеживание пользовательских бизнес-процессов и рабочих потоков.
- Отслеживание изменения важных объектов Salesforce с помощью функции отслеживания изменений данных (Change Data Capture).
- Интеграция с внешними системами с использованием пользовательских событий платформы.
- Создание дашбордов и оповещения в режиме реального времени на основе событий Salesforce.
- Сопоставление событий Salesforce с другими данными мониторинга.
Визуализация
События платформы отправляются в Ключ-АСТРОМ как бизнес-события и могут быть запрошены с помощью DQL:
| fetch bizevents
| filter event.type == "salesforce.YourCustomEvent__e" |
Пример: Запрос всех событий платформы из экземпляра Salesforce.
| fetch bizevents
| filter event.provider == "https://yourinstance.my.salesforce.com" | summarize count(), by: {event.type} |
Каждое событие платформы будет включать все пользовательские поля, определенные в этом событии, что сделает их доступными для фильтрации, группировки и визуализации.
Продление срока хранения данных Salesforce Insights
По умолчанию ваши загруженные данные хранятся в течение 30 дней. Вы можете изменить время хранения, создав пользовательский сегмент (bucket) .
Чтобы создать пользовательский сегмент для события Salesforce
- В Ключ-АСТРОМ перейдите в Настройки > Наблюдаемость бизнеса > Назначение сегментов.
- На странице назначения сегментов бизнес-событий выберите Добавить правило и дайте правилу имя.
- В поле Группа выберите период хранения.
- Добавьте сопоставитель к своему правилу, введя или вставив DQL-запрос, специфичный для этого сопоставителя. События, соответствующие вашему правилу, будут назначены выбранному вами сегменту. Если ни одно правило не соответствует условию, события будут назначены сегменту по умолчанию. Чтобы назначить все события Salesforce вашему сегменту, необходимо использовать сопоставитель, содержащий функцию
matchesValueи ваш URL-адрес Salesforce, как показано в примере ниже. - Выберите Сохранить изменения.
| matchesValue(event.provider, "https://environment.my.salesforce.com") |








