DurableFunctionsMonitor/durablefunctionsmonitor-vsc...
..
.vscode
resources
src
.gitignore
.vscodeignore
CHANGELOG.md
LICENSE
README.md
logo.png
package-lock.json
package.json
tsconfig.json
tslint.json

README.md

Durable Functions Monitor as a VsCode Extension

List/monitor/debug your Azure Durable Functions inside VsCode.

image

Features

  • Get a bird's eye view of any Azure Functions project in form of a graph - Command Palette -> Visualize Functions as a Graph....
  • List your Orchestrations and/or Durable Entities, with sorting, infinite scrolling and auto-refresh.
  • Monitor the status of a certain Orchestration/Durable Entity. Restart, Purge, Rewind, Terminate, Raise Events.
  • Start new orchestration instances - AZURE view container -> DURABLE FUNCTIONS -> [right-click on your TaskHub] -> Start New Orchestration Instance...
  • Quickly navigate to an Orchestration/Entity instance by its ID - Command Palette -> Durable Functions Monitor: Go to instanceId... or Azure Functions View Container -> DURABLE FUNCTIONS -> [right-click on your TaskHub] -> Go to instanceId...
  • Purge Orchestrations/Durable Entities history - Command Palette -> Durable Functions Monitor: Purge History...
  • Cleanup deleted Durable Entities - Command Palette -> Durable Functions Monitor: Clean Entity Storage...
  • Observe all Task Hubs in your Azure Subscription and connect to them - AZURE view container -> DURABLE FUNCTIONS
  • Delete Task Hubs - Command Palette -> Delete Task Hub...

See the complete list of features in our wiki.

How to run

After installing this extension from the Marketplace or from a VSIX-file the DURABLE FUNCTIONS tab should appear on AZURE view container:

NOTE: if you don't have Azure Account extension installed, the tab will appear on the default EXPLORER view container.

DURABLE FUNCTIONS tab shows Task Hubs automatically discovered from:

  • Your Azure Subscription(s), if you're signed in into Azure. To sign in into Azure use Azure: Sign In command. To (un)filter the list of shown Azure Subscriptions, use Azure: Select Subscriptions command.
  • Your currently opened project, if it is an Azure Functions project.
  • Local Storage Emulator, if it is running.

In addition to that you can also connect to arbitrary Storage accounts or Microsoft SQL Server/Azure SQL databases. Either click on image button or use Attach to Task Hub... command. You will be asked for a Connection String (it can be either Azure Storage or Microsoft SQL Server connection string) and a Task Hub name to connect to. The entered Connection Strings are persisted with VsCode SecretStorage API (On Windows you should be able to see them in Windows Credential Manager).

Listing Orchestrations/Durable Entities

To connect to a Task Hub just click on it. This shows the main page with all Orchestrations/Durable Entities in that Task Hub:

The list of instances is filterable/searchable/sortable/scrollable with infinite scroll. Other ways to visualize search results are:

Monitoring/managing Orchestration/Durable Entity instances

Clicking on an Orchestration/Entity instance show its Details page:

Orchestration's Execution History can be observed in form of:

  • Filterable List:

  • Sequence Diagram:

  • Gantt Chart:

  • Interactive (clickable) Functions Graph:

To Suspend/Resume/Restart/Rewind/Terminate/Raise Event/Set Custom Status/Purge an instance use the relevant buttons:

It is also possible to create/configure custom details tabs using Liquid templates. Learn here how to do that.

Other tools

To Purge Orchestration History/Clean Entity Storage/Delete a Task Hub right-click on a Task Hub:

and follow the flow.

Prerequisites

  • Make sure you have the latest Azure Functions Core Tools globally installed on your devbox.

  • Azure Account VsCode extension is not required, but highly recommended. To login into Azure execute the Azure: Sign In command in Command Palette. To filter the list of Azure subscriptions shown execute the Azure: Select Subscriptions command.

How to compile and run this project locally

This project is a typical VsCode extension, so to run/debug it locally you just open these sources in your VsCode and press F5. But before that you'll need to get the backend binaries compiled and copied:

  • Go to durablefunctionsmonitor.dotnetbackend folder.
  • Execute dotnet publish -o ../durablefunctionsmonitor-vscodeext/backend there with your command line. This will compile the backend and place its binaries into the newly created durablefunctionsmonitor-vscodeext/backend subfolder.

Now you'll also need to do npm install in durablefunctionsmonitor-vscodeext folder.

Then finally you can press F5. This will start a sandbox VsCode instance, with DfMon extension running in it from sources.