Salesforce Insights
- Расширение
- 12 мин чтения
Salesforce Insights позволяет администраторам Salesforce и командам ИТ-операций отслеживать свою среду Salesforce.
Настройка¶
Узнайте, как настроить Salesforce Insights и какие данные оно может захватывать.
Убедитесь, что выполнены следующие требования для использования расширения.
Учётная запись Salesforce¶
Расширение Salesforce может захватывать четыре типа данных Salesforce. Выберите каждую конфигурацию для получения подробной информации.
- Конфигурация Event Streaming позволяет отслеживать использование вашей учётной записи Salesforce CRM.
- Конфигурация EventLogFile позволяет загружать файлы логов из Salesforce в Dynatrace.
- Конфигурация API Queries позволяет загружать данные Salesforce Object Query Language (SOQL) в Dynatrace. Данные загружаются в Dynatrace как события логов или бизнес-события.
- Конфигурация Platform Events позволяет подписываться на пользовательские события платформы Salesforce и загружать их в Dynatrace как бизнес-события.
Аутентификация¶
Выберите один из трёх методов аутентификации, наиболее подходящий для ваших нужд.
Подключённое приложение
Пользователь и пароль
Client ID
В этом режиме расширение подключается как подключённое приложение. Это рекомендуемый механизм аутентификации. Технически приложение реализует поток OAuth 2.0 JWT Bearer.
Dynatrace запросит:
- Consumer Key подключённого приложения.
- Private Key подключённого приложения.
- Subject JWT-токена — это имя пользователя, входящего в профиль подключённого приложения.
Требования¶
openssl— для генерации сертификата, не нужен, если у вас уже есть сертификат и закрытый ключ
Примечание: в Windows, если у вас установлен git, у вас также должна быть копия openssl.
Вы найдёте его в каталоге, например C:\Program Files\Git\mingw64\bin, в зависимости от вашей установки.
Сертификат¶
У подключённого приложения должен быть сертификат, с помощью которого мы впоследствии аутентифицируемся в Salesforce, используя закрытый ключ этого сертификата.
Эта команда генерирует сертификат и закрытый ключ:
- Файл
cert.pemбудет добавлен в подключённое приложение. - Файл
key.pemбудет использоваться Dynatrace для аутентификации в Salesforce.
Создание подключённого приложения¶
В Salesforce Lightning
- В разделе Setup > Apps > External Client Apps > Settings убедитесь, что
Allow creation of connected appsвключено. - Выберите New Connected App.
Назовите приложение и добавьте контактный адрес электронной почты. В разделе API (Enable OAuth Settings):
- Установите флажок Enable OAuth Settings
- Если Callback URL не используется, можно указать
http://localhost - Установите флажок Use digital signatures
- Загрузите сгенерированный файл
cert.pemв разделеUse digital signatures. -
В Selected OAuth Scopes добавьте следующие области:
-
Manage use data via APIs (API)
- Perform requests at any time (refresh_token, offline_access)
- Оставьте все остальные настройки по умолчанию и выберите Save.
Политика OAuth¶
- Настройте разрешённых пользователей в OAuth Policy.
- В разделе Apps > App Manager найдите подключённое приложение и выберите Manage.
- Нажмите кнопку Edit Policies.
- В разделе OAuth Policies выберите Admin approved users are pre-authorized.
- Выберите Save.
Утверждённые пользователи¶
Определите пользователей, которые могут использовать приложение. Это можно сделать, добавив профили в список Application Profile Assignment.
- На странице подключённого приложения перейдите в Profiles > Manage Profiles.
- Добавьте профили, которые могут использовать подключённое приложение. Примечание: впоследствии любое имя пользователя из этих профилей можно использовать в качестве Subject при настройке расширения.
Профили требуют следующих разрешений для потоковой передачи событий:
-
Общие разрешения пользователя
-
View Real-Time Event Monitoring Data -
Административные разрешения
-
Customize Application View All Data
Для ознакомления с необходимой документацией по разрешениям см. как включить доступ к мониторингу событий в реальном времени.
- Обычный пользователь Salesforce с разрешениями для нужной конфигурации (Event Streaming, Event Log File или SOQL).
- Пароль пользователя.
- Токен безопасности для пользователя.
Обратите внимание, что этот вариант не рекомендуется, так как пользовательские пароли и токены безопасности могут меняться; обычно он используется только для тестирования расширения.
Для аутентификации Client ID выберите Enable Client Credentials Flow в настройках Connected App или External Client App и укажите Consumer Key и Consumer Secret.
Вам также потребуется выбрать пользователя, от имени которого будет запускаться приложение. Это можно сделать в App Manager > Manage > Edit Policies > Client Credentials Flow > Run As.
Обратите внимание, что это менее безопасно, чем Connected App с сертификатом.
Включение расширения¶
Для включения расширения Salesforce у вас должен быть Environment ActiveGate.
- Найдите расширение в Hub и активируйте его.
- Выберите Add monitoring configuration на странице конфигурации.
-
Выберите группу ActiveGate.
-
Один из этих серверов должен иметь доступ к Salesforce API, который общедоступен.
- URL входа:
https://login.salesforce.comилиhttps://test.salesforce.com - Конечные точки Pub/Sub:
api.pubsub.salesforce.com:7443илиapi.deu.pubsub.salesforce.com:7443 - При необходимости можно настроить прокси.
Параметры конфигурации мониторинга
| Параметр | Описание |
|---|---|
| Endpoint name | Выберите понятное имя для идентификации конечной точки |
| Login URL | Выберите Production или Sandbox |
| Pub/Sub URL | Выберите Global Endpoint или Europe (Frankfurt) Endpoint |
| Reporting Mode | Business Events, Logs, OpenKit (RUM) |
| Custom Application ID | Идентификатор пользовательского приложения Dynatrace для созданного приложения (необходим только при использовании управляемой среды и OpenKit в качестве режима отчётности.) |
| Authentication type | Выберите имя пользователя и пароль или подключённое приложение |
| Events filtering | Выберите, какие события реального времени вы хотите отправлять в Dynatrace; по умолчанию все включены |
| Usernames Blocklist | Необязательный список имён пользователей для игнорирования; используйте его для блокировки пользователей автоматизации/API от отчётности |
| Proxy | Необязательный прокси; если ActiveGate не может подключиться к URL Salesforce |
OpenKit
Если вы используете OpenKit, рекомендуется начать с настройки пользовательского приложения.
Приём данных Salesforce¶
Выберите один из трёх методов приёма данных в зависимости от ваших потребностей мониторинга.
Event Streaming
EventLogFile
API Queries (SOQL)
Platform Events
Захватывайте события реального времени из Salesforce и отправляйте их как бизнес-события в Dynatrace.
Приём RUM следует использовать только в управляемых средах.
- Включите Real-time event Streaming.
- В Setup > Event Manager включите Streaming Data для событий, которые вы хотите захватывать.
- Получите учётные данные, необходимые расширению для подключения к Salesforce.
Включите такие варианты использования, как:
- Отслеживание перехвата сессий, атак с заполнением учётных данных и аномалий
- Отслеживание важных наборов разрешений и изменений
- Каковы самые медленные времена отклика страниц Lightning или Classic?
- Какие файлы загружаются, скачиваются и каким пользователем?
- Какие отчёты используются чаще всего, кто их запускает, какие запросы используются?
- Каковы самые популярные запросы API?
- Какие браузеры используют пользователи?
- Откуда осуществляется доступ к Salesforce?
- Сколько пользователей используют платформу в данный момент, каков их пользовательский опыт?
Расширение использует Salesforce Pub/Sub API для прослушивания событий потоковой передачи. Эти события захватываются и отправляются как бизнес-события, или в случае OpenKit как Действия пользователя со всеми соответствующими свойствами, отправленными как Свойства действий.
Для подробного описания каждого события и его свойств см. документацию Salesforce.
Текущие захватываемые события¶
| События | Описание |
|---|---|
| ApiAnomalyEvent | Отслеживание аномалий в том, как пользователи выполняют вызовы API. |
| ApiEventStream | Отслеживание запросов API пользователей в вашей организации. |
| BulkApiResultEvent | Отслеживание, когда пользователь скачивает результаты запроса Bulk API. |
| ConcurLongRunApexErrEvent | Отслеживание возникновения ошибки Concurrent Long Running Apex. |
| CredentialStuffingEvent | Отслеживание, когда пользователь успешно входит в Salesforce во время выявленной атаки с заполнением учётных данных. |
| FileEvent | Отслеживание файловой активности. Например, отслеживание, когда пользователь скачивает или просматривает файл. |
| LightningUriEventStream | Отслеживание, когда пользователь создаёт, получает доступ, обновляет или удаляет запись в Salesforce Lightning. |
| ListViewEventStream | Отслеживание, когда пользователь получает доступ к данным с помощью представлений списков. |
| LoginAsEventStream | Отслеживание, когда администратор входит в вашу организацию под именем другого пользователя. |
| LoginEventStream | Отслеживание, когда пользователь входит в вашу организацию. |
| LogoutEventStream | Отслеживание, когда пользователь выходит из интерфейса Salesforce. |
| PermissionSetEvent | Отслеживание, когда пользователям назначается разрешение Modify All Data или View All Data через набор разрешений. |
| ReportAnomalyEvent | Отслеживание аномалий в том, как пользователи запускают или экспортируют отчёты. |
| ReportEventStream | Отслеживание, когда пользователь получает доступ к данным или экспортирует их с помощью отчётов. |
| SessionHijackingEvent | Отслеживание, когда несанкционированный пользователь получает контроль над сессией пользователя Salesforce с помощью украденного идентификатора сессии. |
| UriEventStream | Отслеживание, когда пользователь создаёт, получает доступ, обновляет или удаляет запись в Salesforce Classic. |
Расширение ограничено событиями, которые Salesforce генерирует как события реального времени.
Выберите режим отчётности для данных Event Streaming:
Бизнес-события¶
Для бизнес-событий все данные принимаются с использованием API бизнес-событий.
Их можно запрашивать с помощью DQL:
Визуализация результата запроса

Каждое из событий типа salesforce.NameOfTheEvent будет содержать все свойства, задокументированные Salesforce.
Например, см. свойства для ApiEventStream.
Таким образом, можно создавать визуализации, используя все эти свойства.
fetch bizevents
| filter event.type == "salesforce.ApiEventStream"
| summarize count(), by: {SourceIp}
Визуализация результата запроса

Вы можете получить список всех типов событий с помощью DQL:
fetch bizevents
| filter event.provider == "https://dynatrace--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¶
Чтобы создать пользовательское приложение для получения данных:
- В Hub перейдите в раздел Digital Experience Monitoring. Затем выберите Generic front end > Set up.
- Создайте ваше пользовательское приложение — назовите его и выберите значок.
- Выберите Monitor custom application.

- В Custom application settings перейдите в Instrumentation wizard и сохраните
Application IDдля дальнейшего использования.

- Теперь вы можете включить расширение. Подробности см. в разделе <#enable-extension>.
Данные отправляются в созданное вами приложение Frontend, поэтому вы можете получить доступ к:
- Sessions Details
- Отдельным свойствам, выбрав User Action > Perform waterfall analysis
Для использования этих свойств в User Sessions Query Language:
- В настройках приложения перейдите в Session and user action properties.
- Создайте свойство. Примечание: имя должно точно совпадать с именем свойства, см. события Salesforce.
Пример: захват количества строк

Запрос свойства:
SELECT useraction.name, SUM(longProperties.rowsprocessed) FROM useraction WHERE useraction.name STARTSWITH "Report" GROUP BY useraction.name

EventLogFile¶
Захватывайте файлы логов событий из Salesforce и принимайте их как логи в Dynatrace.
- EventLogFile необходимо включить в Salesforce.
- У пользователя должны быть установлены разрешения для чтения файлов логов событий.
Детали¶
- Создайте новую конфигурацию EventLogFile, выбрав Configure EventLogFile. Обратите внимание, что в разделе Events to capture все различные файлы логов по умолчанию будут отключены.
- Выберите, какие файлы логов вы хотите принимать.
Не ожидайте данных в реальном времени из этой конфигурации. Данные логов событий задерживаются на несколько часов в Salesforce.
Визуализация¶
События отправляются в Dynatrace как события логов и могут быть запрошены с помощью DQL:
Визуализация результата запроса

Все свойства определённого файла логов событий будут доступны. Для получения сведений о полях см. поддерживаемые типы событий EventLogFile.
Пример¶
Получение деталей событий ApexExecution:
fetch logs
| filter EVENT_TYPE == "ApexExecution"
| fields TIMESTAMP_DERIVED, ENTRY_POINT, EXEC_TIME, CPU_TIME, DB_TOTAL_TIME, NUMBER_SOQL_QUERIES
Визуализация результата запроса

API Queries (SOQL)¶
Выполняйте запросы SOQL к Salesforce и принимайте данные как логи или бизнес-события. У пользователя должны быть разрешения для запроса Salesforce API и чтения запрашиваемых объектов.
Детали¶
Для загрузки данных Salesforce Object Query Language (SOQL) в Dynatrace:
- Выберите Configure API queries.
-
Добавьте до 100 SOQL-запросов для выполнения с указанным интервалом. Каждый запрос имеет следующие параметры:
-
Query Name — имя запроса, которое поможет вам найти эти данные запроса позже в Dynatrace Logs.
-
Query — выполняемый SOQL-запрос.
- Запрос должен содержать хотя бы одно поле datetime.
- Заполнитель
{last_execution_timestamp}должен использоваться для фильтрации результатов запроса и дедупликации данных. - Пример:
SELECT Id, CreatedDate, Field, NewValue, OldValue FROM OpportunityFieldHistory WHERE CreatedDate > {last_execution_timestamp} -
Frequency
-
Частота может быть типа Interval или Cron.
- Interval — запрос будет выполняться каждые X минут.
- Cron — запрос будет выполняться на основе предоставленного выражения cron; вы можете использовать crontab guru для генерации выражения cron.
Визуализация¶
Рассмотрим следующую конфигурацию запроса:
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"
| makeTimeseries sum(toDouble(expr0)), by: {UserId}, interval: 5m
Визуализация результата запроса

Вы также можете получить все запросы и их тексты, настроенные для данного экземпляра Salesforce:
fetch logs
| filter event.provider == "https://dynatrace--staging.sandbox.my.salesforce.com"
| summarize count(), by: {query.name}
Визуализация результата запроса

Platform Events¶
Подписывайтесь на пользовательские Salesforce Platform Events и принимайте их как бизнес-события в Dynatrace.
Platform Events предоставляют мощный способ отправки и получения пользовательских уведомлений о событиях внутри Salesforce и во внешние системы. Эта конфигурация позволяет захватывать данные о событиях в реальном времени из пользовательских платформенных событий, стандартных платформенных событий и событий захвата изменений данных.
Детали¶
Для приёма Salesforce Platform Events в Dynatrace:
- Выберите Configure Platform Events.
-
Добавьте темы, на которые вы хотите подписаться. Темы имеют следующие форматы:
-
Custom Platform Events:
/event/YourCustomEvent__e - Standard Platform Events:
/event/LoginEventStream,/event/LogoutEventStream - Change Data Capture:
/data/ChangeEvents,/data/AccountChangeEvent - Настройте аутентификацию с помощью одного из поддерживаемых методов (Connected App, User and Password или Client ID).
Варианты использования¶
Включите такие варианты использования, как:
- Мониторинг пользовательских бизнес-процессов и рабочих процессов
- Отслеживание изменений критически важных объектов Salesforce с помощью Change Data Capture
- Интеграция с внешними системами с использованием пользовательских Platform Events
- Создание дашбордов и оповещений в реальном времени на основе событий Salesforce
- Корреляция событий Salesforce с другими данными наблюдаемости
Визуализация¶
Platform Events отправляются в Dynatrace как бизнес-события и могут быть запрошены с помощью DQL:
Пример: запрос всех Platform Events из экземпляра Salesforce
fetch bizevents
| filter event.provider == "https://yourinstance.my.salesforce.com"
| summarize count(), by: {event.type}
Каждое Platform Event будет включать все пользовательские поля, определённые для события, что делает их доступными для фильтрации, группировки и визуализации.
Расширение периода хранения данных Salesforce Insights¶
По умолчанию принятые данные хранятся 30 дней. Вы можете изменить время хранения, создав пользовательский бакет.
Чтобы создать пользовательский бакет для события Salesforce
- В Dynatrace перейдите в Settings > Business Observability > Bucket assignment.
- На странице Business event bucket assignment выберите Add rule и назовите ваше правило.
- В поле Bucket выберите период хранения.
- Добавьте Matcher к вашему правилу, введя или вставив ваш специфичный для матчера DQL-запрос. События, соответствующие вашему правилу, будут назначены в выбранный вами бакет. Если ни одно правило не совпадает, события будут назначены в бакет по умолчанию. Чтобы назначить все ваши события Salesforce в ваш бакет, необходимо использовать матчер, содержащий функцию
matchesValueи URL Salesforce, как в примере ниже.
Устранение неполадок¶
Журналы ошибок можно получить через Dynatrace, перейдя на страницу расширения и выбрав Status для каждой конфигурации мониторинга.
Подробные журналы можно получить, создав диагностику ActiveGate.