Microsoft Azure Service Profiler

Symbol Servers

Service Profiler needs symbol files (.pdb) to get the source code line information of each code frame as well as resolving the names in native modules.

By default Service Profiler looks for the public symbols from the following symbol servers:

Service Profiler also looks for the private symbols from the data cube storage sp-symbols blob container.

For example, if your application has a module named MyApp.dll, you can run the following SymStore command to store the symbol

symstore.exe add /f "MyApp.pdb" /compress /s "c:\Symbols" /t "MyApp" /o

It will generate the compressed symbol file c:\Symbols\Mypp.pdb\{pdb-signature-guid}\MyApp.pd_. You can then upload the symbol file to https://{data-cube-storage-account}.blob.windows.net/sp-symbols/MyApp.pdb/{pdb-signature-guid}/MyApp.pd_.

Additionally, if you set up another public accessible Symbol Server, you can add it to your data cube by choosing Actions->Configure Symbol menu.

Source Servers

If your source code is hosted in Visual Studio Team Service (VSTS) or GitHub, you can embed HTTP-based source index SRCSRV stream in the symbol files. When you start to investigate a performance issue, you can easily navigate to the code from the target call stack frame. Here are the HTTP url examples.

You can also use the tool like GitLink to auto-generate the SRCSRV stream in the symbol files.

If your source code repository is private in VSTS or GitHub, you can upload the personal access token by choosing Actions->Configure Symbol menu.

Integration with CI/CD

If you have set up the continuous integration and deployment, you can automate the symbol-source generation for each build/deployment. Here is an example in PowerShell script.

Troubleshooting

If you have any questions about configuring the symbol and source, please send mail to serviceprofilerhelp@microsoft.com

Give feedback