Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
Приветствую!

Сегодня общались с админом по поводу мониторинга критических приложений в нашей инфраструктуре.
Он мне продемонстрировал такую штуку. Довольно интересный функционал, простота использования, и все такое.

Теперь, опишу ситуацию. Есть некоторое подведомственное приложение, критическое для бизнеса, с примерно такой архитектурой:
1) Есть сервер приложений, IIS, ASP.NET Web Api 2. он служит "точкой входа / выхода", т.е. на него посылается небольшой кусок данных, скажем айди клиента плюс кое-какая мелочь. Это все как есть отправляется на сервер базы данных (SQL Server 2016) как параметр для хранимой процедуры.
2) На сервере баз данных реализована логика хранимой процедуры следующим образом. Сперва, по айди клиента ищется некоторая информация в хранилище (хранилище крутится на том же сервере), потом она отсылается на сторонный вэб-сервис, чтобы получить дополнительные данные по клиенту. Вызов реализован через SQL CLR Assembly. Важно, что вызов сервиса идет после получения иформации из хранилища. Именно поэтому вызов сервиса реализован на стороне базы данных, чтобы избежать ненужной передачи данных на сервер приложений и обратно. Так как потом, к полному набору данных дополнительно применяются некоторые преобразования и аггрегации с помощью SQL. В итоге, процедура возвращает компактный ответ серверу приложений, а он уже - вызывающей стороне.

так вот, этот NewRelic агент прекрасно увидел Web Api приложение, и что оно отсылает данные на сервер баз данных, и построил даже карту вызовов. Но, на сервере базы данных, он не видит что там был сделан запрос из SQL CLR Assembly на сторонный вэб-сервис. Т.е., NewRelic агент не видит среду исполнения SQL CLR кода, но видит IIS / ASP.NET.

Мы, конечно пообщаемся с их поддержкой, но может кто знаком с подобными утилитами мониторинга, которые могут также "видеть" что происходит внутри SQL CLR сборки?

Просьба не обсуждать архитектуру, на данный момент это наиболее оптимальное решение по ряду причин, некоторые из которых я описал выше.
24 авг 18, 06:00    [21652601]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
aleks222
Member

Откуда:
Сообщений: 920
Пишите свои приложения "некоряво" и не нужны будут вам сторожа сторожей мониторы мониторов.

ЗЫ. А так-то, при некоторой настойчивости, можно увидеть что делается не только у вас, но и у соседей.
24 авг 18, 06:14    [21652604]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Диклевич Александр, помнится AVIcode стругал что-то подобное... не помню это SCOM были манажед паки или еще что...Да и что стало после покупки их микрософтом... не знаю...
24 авг 18, 11:12    [21652844]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
aleks222,

так необходимость мониторинга не значит что приложение написано "коряво".
просто хочется создать автоматом карту связей что чего вызывает, и этот NewRelic умеет строить такие карты, но он не видит SQL CLR.


buser,

спасибо! похоже сейчас это называтся System Center 2012 R2. Посмотрю, что это и какие возможности.
24 авг 18, 11:28    [21652871]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Диклевич Александр, AVIcode .NET Application Monitoring вроде как конец им...
24 авг 18, 11:33    [21652883]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7660
Диклевич Александр,

не совсем понятно, что означает "внутри сборки"?
24 авг 18, 12:36    [21652978]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 437
Владислав Колосов
Диклевич Александр,

не совсем понятно, что означает "внутри сборки"?


ага, если нужны запросы к базе - то они будут в профайлере независимо от того, из какого места идут.
24 авг 18, 13:14    [21653041]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
Владислав Колосов,

ну как-то же этот агент от NewRelic видит что происходит внутри IIS ASP.NET приложения, я имею в виду, какие там методы вызываются, какие запросы идут в базу, и все такое.
Почему он не видит, что делает SQL CLR сборка, т.е., что там тоже есть метод, который отправляет запрос на внешний сервис?

агент от NewRelic может так же следить за обычными .NET приложениями, стоит только добавить в app config:
<configuration>
  <appSettings>
    <add key="NewRelic.AgentEnabled" value="true" />
    <add key="NewRelic.AppName" value="DESIRED_APPLICATION_NAME" />
  </appSettings>
</configuration> 


я добавил это в sqlservr.exe.config, но не помогло.
24 авг 18, 13:20    [21653055]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
256k,

Запросы к базе я вижу.
Но, база тоже делает запрос посредством SQL CLR на сторонний вэб-сервис. вот этот запрос и хотелось бы развидеть тоже.
24 авг 18, 13:22    [21653057]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
aleks222
Member

Откуда:
Сообщений: 920
Диклевич Александр
я добавил это в sqlservr.exe.config, но не помогло.


Я открою тебе страшную тайну: sqlservr.exe не разу ни .NET приложение.

Более того CLR объявлена deprecated.
24 авг 18, 13:44    [21653113]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
т.е. сейчас, в NewRelic интерфейсе, я вижу подобную схему:
IIS ASP.NET --> MS SQL.

А хотелось бы:
IIS ASP.NET --> MS SQL --> External API.
24 авг 18, 13:47    [21653119]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
твой ньюреликт висит на твоём приложении, а к sql он никаким боком, поэтому что делается внутри sql сервера он знать не может
24 авг 18, 14:07    [21653155]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
Konst_One,

это понятно, что не видит. поэтому я изначально спросил есть ли инструменты способные видеть.
24 авг 18, 17:08    [21653372]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
aleks222
Диклевич Александр
я добавил это в sqlservr.exe.config, но не помогло.


Я открою тебе страшную тайну: sqlservr.exe не разу ни .NET приложение.

Более того CLR объявлена deprecated.


я спрашиваю не о sqlservr.exe, и прекрасно понимаю что это не .NET приложение. но он же загружает как то SQL CLR сборку и обращается к ней.
я упомянул конфиг потому что он подтягиватется вместе с SQL CLR.

также, официальный ичточник для SQL Server 2017 ничего не говорит о том что SQL CLR deprecated. Да, там поменяли модель безопасности, но не объявили deprecated.
24 авг 18, 17:18    [21653379]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1346
Диклевич Александр,

дебагером можете подсоединиться к процессу sql server, тот же windbg с правильным файлом символов (но вы не увидите явных сигнатур кода .NET). Правда можете приспокойно грохнуть процесс сервера из-за этого.
24 авг 18, 17:28    [21653387]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7660
Диклевич Александр,

так Вы должны смотреть не в сборку, а на вызов CLR процедур и функций.
27 авг 18, 13:24    [21654938]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
Владислав Колосов,

понимаю, что должен.
а как?
27 авг 18, 18:41    [21655316]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7660
Диклевич Александр,

аудиты настроить, использовать административные представления? Не подскажу, передо мной не стояло таких задач.
29 авг 18, 13:39    [21657578]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27681
Диклевич Александр,

у NewRelic есть возможность кастомные метрики собирать
https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/collect-custom-metrics

и кастомные события слать
https://docs.newrelic.com/docs/insights/insights-data-sources/custom-data/insert-custom-events-insights-api

Пробуйте прям в SQL CLR Assembly.
29 авг 18, 14:06    [21657645]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 608
Владислав Колосов,

это немного не то.
сам вызов CLR процедур и фунций и так прозрачен.
но, хотелось бы увидеть что некоторые из этих CLR процедур и фунций вызывают сторонние сервисы посредством HttpWebRequest, POSTят какие-то данные, и что-то получают в ответ.

Также хочется все это видеть в связке с ASP.NET точкой входа как я описал выше.
29 авг 18, 14:24    [21657670]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7660
Диклевич Александр,

так этот ваш Релик, может использовать системы аудита IIS. А Вы думает о чудесной магии.
29 авг 18, 16:11    [21657852]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли какие средства мониторинга SQL CLR Assembly?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
Диклевич Александр
но, хотелось бы увидеть что некоторые из этих CLR процедур и фунций вызывают сторонние сервисы посредством HttpWebRequest, POSTят какие-то данные, и что-то получают в ответ.

Также хочется все это видеть в связке с ASP.NET точкой входа как я описал выше.
Нету такого, не найдёте.

Можно на отдельном сиквеле всё это тестировать, и смотреть внешние вызовы какими то отдельными средствами.
29 авг 18, 16:39    [21657880]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить