0% found this document useful (0 votes)
8 views26 pages

Azure Training Syallbus

The document outlines a comprehensive 7-month training program on Azure, covering various topics including DevOps, AI, ML, Docker, and Kubernetes, scheduled for Saturdays and Sundays. It details the curriculum, which includes Azure basics, developer tracks, storage, security, infrastructure, and machine learning, along with practical coding examples and links to additional resources. The program aims to equip participants with both foundational and advanced skills in Azure technologies.

Uploaded by

omer.mohemmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views26 pages

Azure Training Syallbus

The document outlines a comprehensive 7-month training program on Azure, covering various topics including DevOps, AI, ML, Docker, and Kubernetes, scheduled for Saturdays and Sundays. It details the curriculum, which includes Azure basics, developer tracks, storage, security, infrastructure, and machine learning, along with practical coding examples and links to additional resources. The program aims to equip participants with both foundational and advanced skills in Azure technologies.

Uploaded by

omer.mohemmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Azure Basics to Advanced

(7 months)
(Covering Devops, AI , ML , Docker and Kubernetes)
Every Saturday and Sunday
www.questpond.com

Azure Basics
Basic Azure Concepts Why Cloud and Pay as you go model? 4 hours
IAAS , PAAS and SAAS
Private , Public and Hybrid cloud
Capex and Opex ,Consumption based model
Opening up Azure Account
Geography, Region, Zones and Availability Zones
Availability set , VMset , Fault domain and update domains
Resource and Resource groups, Azure resource manager.
Creating First Azure virtual Machine and understanding all the above
concepts.
2 factor auth in VM
Understanding terms High Availability, Scalability, Elasticity, Agility,
Fault Tolerance, and Disaster Recovery
Azure Support plans
AZ 900 Questions

Azure Developer Track


Azure App Service Creating an App service and hosting a .NET application. 1 hour
Different AppService plans.
https://learn.microsoft.com/en-us/azure/app-service/overview-
hosting-plans
Demo of Slots and swapping
Scale out(H)/up(V),Auto scaling
Configuration settings

Understanding telemetry, instrumentation, debugging, profiling and


tracing:- Monitoring
Tracing , Distributed tracing, Metrics and Logs.
Enabling basic instrumentation inside ASP.NET core.
Auto instrumentation and basic data.
Different
https://learn.microsoft.com/en-us/azure/azure-monitor/app/api-
custom-events-metrics
Basics of Kusto Query Language
Costing of application insight
Disable telemetry
activity class, setparentId, requesttelemtery and dependency telemetry
and Correlation ….
Open telemetry
https://opentelemetry.io/docs/languages/net/instrumentation/

Function Apps
Logic apps
Web application and Function Apps 4 hours
Serverless Logic Apps
Web jobs
Security OpenId , OpenId connect 2 hours
OAuth , OAuth 2.0
Integrating security with Web application.
Storages Azure SQL Server 6 hours
DTU , EDTU Calculation
Blobs, Queues , tables and Files.
(Tied up with Azure)
Create an Azure table
C# Insert update , Query and delete
10 best practices.
To the point queries , Partion key , row key
Duplicate is ok
Compund keys
Hot partitions
EGT Avoid new Azure tables
Delete pattern
Large entities

Intra partition
Inter partition
Concurrency ETag why did not work.

Azure table pattern designs


Azure Blobs
Types of blobs
Append , Page blob and Block blobs
Simple blob upload
Uploading block blob in chunks
Append blob
Page blob
Log reading
Blob – Function App
Visual logic app
Complicated one
https://github.com/MicrosoftDocs/azure-docs/issues/40647
Creating Azure Queues
Send message . Receive message
Peeking Messages
Dequeue
Demo by using C# files
Azure Cosmos DB
APIM What is APIM ? 2 hours
Importing an API Service
Understanding the inbound, output bound and backend
Talk about products
Applying input policies.
Seeing some demos of output plicies
Restrict IP Address
Limit rate calls
Removed asp headers
Versioning is for the end users
Revision is for code
APIM Security with Oauth
Revision and Versioning of APIM
Security in Azure APIM Oauth and openId
Error handling
Messaging Azure Queues, Events and Service Bus 2 hours

Logging and Telemetry Azure telemetry 2 hours


Monitoring
Azure Infrastructure ( Covering Docker and Kubernetes)
Azure networking IP, Subnet 2 hour
Create a simple Vnet
Understanding NSG
Pinging

Fire walls and Load Balancers Demo of Azure front door service 4 hours
Dynamic site acceleration
Azure CDN and Front door services
WAF (Web Application firewall)
Traffic Manager
Automation Power shell 2 hours
ARM templates
Azure Automate
Docker and Kubernetes Docker is a software which implements container 4 hours
Docker , enable docker for windows
DockerFile , DockerIgnore
Docker build
Docker Run
Hosting on ACR
Understanding K8 Architecture.
AKS
Azure Devops
Devops What is Devops ? 4 hours
CI CD CU
Azure piple line
YAML
Checked in , Build start , Release , updated in to Azure APP Service
Unit testing inside the pipe line
Basic YAML from Azure pipeline
Implementing security :- Devopsec.
Ansible
Terraform
Puppet
Azure Machine Learning, AI
Azure Data Factory What is Data factory? 4 hours
Building pipelines, Data flows
Data transformation and orchestration.
Azure AI ML Understanding Azure learning work space. 4 hours
Train, optimize, manage and consume models.
Azure cognitive services and machine learning designer.

Big data Data lakes 4 hours


Data bricks
Apache Spark , HD insight

Notes for the trainer to use below.

Trackevent metrics

Azure table code

https://docs.microsoft.com/en-us/dotnet/api/overview/azure/data.tables-readme-pre

Odata Query

https://docs.microsoft.com/en-us/odata/concepts/queryoptions-overview

Azure table cost

https://azure.microsoft.com/en-in/pricing/details/storage/tables/

Simple Azure blob

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet

Azure table design patterns

https://docs.microsoft.com/en-us/azure/storage/tables/table-storage-design-patterns

https://learnxinyminutes.com/docs/yaml/

https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/javascript?view=azure-
devops&tabs=code

Azure service bus portal and C# code


https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-
with-queues

Table Entity operations


class Patient : ITableEntity
{

public string PatientName { get; set; }


public string PatientAddress { get; set; }
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public DateTimeOffset? Timestamp { get; set; }
public ETag ETag { get; set; }
}
class Program
{
static void Main(string[] args)
{
Patient p = new Patient();
p.PartitionKey = "OutPatient";
p.PatientName = "Shiv123";
p.RowKey = "r1009";
p.PatientAddress = "Mumbai";
var tableClient = new TableClient(new

Uri("https://storagequestpond.table.core.windows.net/Patients"),"Patients",
new TableSharedKeyCredential("storagequestpond",
"xYiBpJZ8gN9znVvSKND+O6PULjHDkoUbOe0nXoBiAdmpI+UiTNfKw9qxckTpRtugg8Zj8RgWL/hFEe+eIeWQJ
Q=="));
//tableClient.AddEntity(p);

Pageable<Patient> query = tableClient.Query<Patient>(filter: $"RowKey eq


'r1009'");
foreach (var item in query)
{

}
Patient entity = tableClient.GetEntity<Patient>("OutPatient", "r1009");
entity.PatientName = "new name123";
//tableClient.DeleteEntity()
tableClient.UpdateEntity(entity, ETag.All, TableUpdateMode.Replace);
Console.WriteLine("Hello World!");
}
}

Upload and download


static async void Upload()
{
string connectionstring =
"DefaultEndpointsProtocol=https;AccountName=questpondstorage;AccountKey=T4mvdmtd9RouZT
niKnuxoSzVShbzKx60Zn0yRZZ0gQHdSTZC83Ez32EP+V+/xoSo0LNeG3QmMrh/+z6IoQRhmQ==;EndpointSuf
fix=core.windows.net";
BlobServiceClient blobServiceClient = new
BlobServiceClient(connectionstring);

BlobContainerClient containerClient =
blobServiceClient.GetBlobContainerClient("blob123");

BlobClient blobClient = containerClient.GetBlobClient("mp4");


Console.Write(blobClient.Uri);
await blobClient.UploadAsync(@"E:\Untitled.mp4", true);
//await blobClient.DownloadToAsync(downloadFilePath);
}

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet-legacy
with file splits
public static async void Upload()
{
string connectionstring =
"DefaultEndpointsProtocol=https;AccountName=questpondstorage;AccountKey=T4mvdmtd9RouZT
niKnuxoSzVShbzKx60Zn0yRZZ0gQHdSTZC83Ez32EP+V+/xoSo0LNeG3QmMrh/+z6IoQRhmQ==;EndpointSuf
fix=core.windows.net";
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(connectionstring);
// Step 2 :- get reference o the blob client
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
blobClient.DefaultRequestOptions = new BlobRequestOptions()
{

SingleBlobUploadThresholdInBytes = 1024 * 1024, //1MB, the minimum


ParallelOperationThreadCount = 1
};
// Step 3 :- from the blob client you will get refernce to the container
CloudBlobContainer container =
blobClient.GetContainerReference("blob123");
// Step 4 "- use the container and get access to block blob
// Upload(container, @"e:\Untitled.mp4");
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myf123");
//blockBlob.DownloadToFile(@"c:\my.pdf", FileMode.CreateNew);
//foreach (var blockListItem in blockBlob.DownloadBlockList())
//{
// Console.WriteLine("Block ID: " + blockListItem.Name);
// Console.WriteLine("Block size: " + blockListItem.Length);

//}
blockBlob.StreamWriteSizeInBytes = 1024 * 1024;
// Step 5 :- Uploading a PDF 13 mb
await blockBlob.UploadFromFileAsync(@"e:\Untitled.mp4");
//blockBlob.StreamMinimumReadSizeInBytes = 1024 * 1024;
//using (var blobStream = await blockBlob.OpenReadAsync())
//{
// using (var fs = new FileStream(@"c:\mynew.pdf", FileMode.Create))
// {
// await blobStream.CopyToAsync(fs);
// }
//}
//await blobClient.DownloadToAsync(downloadFilePath);
}

Append blob

CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(@"DefaultEndpointsProtocol=https;AccountName=shivblob;AccountKey
=nuGq71akmiGgxAwUpzuq4L+WocsioPcHPt1kGbVWekFf/9h+8ODxGAqnY387f7glNoftXd8oMgEHS6Z
23wXUSg==;EndpointSuffix=core.windows.net");

// Step 2 :- get reference o the blob client

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Step 3 :- from the blob client you will get refernce to the container

CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");


// Step 4 :- Append blob

CloudAppendBlob appendBlob = container.GetAppendBlobReference("myblobapp");

//appendBlob.DownloadToFile()

if (!appendBlob.Exists())

appendBlob.CreateOrReplace();

appendBlob.AppendFromFile(@"d:\Hello1.txt");

appendBlob.AppendFromFile(@"d:\Hello2.txt");

Page blob

CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(@"DefaultEndpointsProtocol=https;AccountName=shivblob;AccountKey
=nuGq71akmiGgxAwUpzuq4L+WocsioPcHPt1kGbVWekFf/9h+8ODxGAqnY387f7glNoftXd8oMgEHS6Z
23wXUSg==;EndpointSuffix=core.windows.net");

// Step 2 :- get reference o the blob client

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Step 3 :- from the blob client you will get refernce to the container

CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

CloudPageBlob pb = container.GetPageBlobReference("pageblob123");

if (!pb.Exists())

pb.Create(3 * 512);

Stream blobStream = pb.OpenRead();

byte[] data = new byte[512];

blobStream.Seek(512, SeekOrigin.Begin); // start reading fro 512

blobStream.Read(data, 0, 512);

File.WriteAllBytes(@"d:\new2.txt", data);

//IEnumerable<PageRange> ranges = pb.GetPageRanges();


//foreach (PageRange range in ranges)

//{

// Console.WriteLine(range.StartOffset + " " + range.EndOffset);

//}

//byte[] bytearry = new byte[512];

//MemoryStream m = new MemoryStream();

//FileStream fs = new FileStream(@"d:\Hello1.txt", FileMode.Open);

//fs.Read(bytearry, 0, 512);

//m = new MemoryStream(bytearry);

//pb.WritePages(m, 0);

//fs = new FileStream(@"d:\Hello2.txt", FileMode.Open);

//fs.Read(bytearry, 0, 512);

//m = new MemoryStream(bytearry);

//pb.WritePages(m, 512);

https://docs.microsoft.com/en-us/azure/storage/queues/storage-dotnet-how-to-use-
queues?tabs=dotnet
string connectionString =
"DefaultEndpointsProtocol=https;AccountName=questpondstorage;AccountKey=k/Td/CrBYlXHQp
LKaRT+Ag1n7xukLn7gFEgsfkDzBaxP7o3TYi5LrhvLY9nhBU6gwA9QotdD3UlS7pK0aSQRDw==;EndpointSuf
fix=core.windows.net";

// Instantiate a QueueClient which will be used to create and manipulate


the queue
QueueClient queueClient = new QueueClient(connectionString, "myqueue123");
//queueClient.CreateIfNotExists();
//queueClient.SendMessage("Hello 1");
//queueClient.SendMessage("Hello 2");
//PeekedMessage[] peekedMessage = queueClient.PeekMessages();
//Console.WriteLine(peekedMessage[0].Body);
QueueMessage[] retrievedMessage = queueClient.ReceiveMessages();

// Process (i.e. print) the message in less than 30 seconds


//Console.WriteLine($"Dequeued message: '{retrievedMessage[0].Body}'");

retrievedMessage = queueClient.ReceiveMessages();
foreach (var item in retrievedMessage)
{
Console.WriteLine(item.Body);
}
// Process (i.e. print) the message in less than 30 seconds
//Console.WriteLine($"Dequeued message: '{retrievedMessage[0].Body}'");
// Delete the message
queueClient.DeleteMessage(retrievedMessage[0].MessageId,
retrievedMessage[0].PopReceipt);
Console.WriteLine("Hello World!");

Azure files

https://docs.microsoft.com/en-us/dotnet/api/overview/azure/storage.files.shares-readme

Home work..

https://docs.microsoft.com/en-us/azure/logic-apps/quickstart-create-logic-apps-with-visual-studio
https://dtucalculator.azurewebsites.net/

https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-asp-webapp
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-aspnet-core-
webapp

Angular API

https://docs.microsoft.com/en-us/rest/api/servicebus/get-azure-active-directory-token

https://docs.microsoft.com/en-us/graph/auth-v2-service#token-request

MVC Conttoller

Web API
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "https://localhost:44360/",
"ClientId": "1eb4d1a2-9673-49e2-8c2f-88fdf8cb3761",
"TenantId": "bf65742e-d37d-46f9-bc1d-24def2b7bc1d",
"CallbackPath": "/signin-oidc"
}

public void ConfigureServices(IServiceCollection services)


{
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options => Configuration.Bind("AzureAd",
options));

services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}).AddMicrosoftIdentityUI();
}

// This method gets called by the runtime. Use this method to configure the
HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for
production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}

Docker help

dockerfile with out any extension

.dockerignore

docker build please put the . at the last

1. Important commands

To create image.

docker build -t mvcoreimage1 .

To create container

docker run -d -p 8080:80 --name mvccontainernew1 mvcoreimage1


To list all images in a computer

docker images

To list all containers in a computer.

docker container list -a

To check container details like IP address

docker inspect mvccore5

To stop a image

docker stop imagename

Power shell commands to delete all images and containers.

docker ps -a -q | % { docker rm $_ }

docker images -q | % { docker rmi $_ }

Check if there are issues with the container

docker logs containername

with out stopping you can not delete

2. docker file for MVC core (dockerfile)

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build

WORKDIR /MyCore123

# copy csproj and restore as distinct layers

COPY *.sln .
COPY MyCore123/*.csproj ./MyCore123/

RUN dotnet restore

# copy everything else and build app

COPY MyCore123/. ./MyCore123/

RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime

WORKDIR /MyCore123/MyCore123

COPY --from=build /MyCore123/out ./

ENTRYPOINT ["dotnet", "MyCore123.dll"]

2. docker file for MVC 5(dockerfile)

FROM microsoft/aspnet

COPY ./bin/Release/Publish/ /inetpub/wwwroot

Step 3 :- .dockerignore

# directories

**/bin/

**/obj/

K8s … Coo ber netes

coob-control

coob-let

https://www.knowledgehut.com/blog/devops/install-kubernetes-on-windows
. kubectl apply -f .\recommended.yaml
https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-
rc7/aio/deploy/recommended.yaml

kubectl.exe get -f .\recommended.yaml.txt

((kubectl -n kube-system describe secret default |


Select-String "token:") -split " +")[1]

kubectl proxy.

http://localhost:8001/api/v1/namespaces/kubernetes-
dashboard/services/https:kubernetes-dashboard:/proxy/

https://github.com/kubernetes/minikube/releases/latest/download/minikube-installer.exe
minikube start
kubectl get nodes
minikube dashboard
minikube dashboard –url
minikube status
kubectl get pods --all-namespaces
kubectl create deployment hello-minikube --
image=k8s.gcr.io/echoserver:1.4

kubectl expose deployment hello-minikube --type=NodePort --


port=8080
Minikube service hello-minikube –url
kubectl delete service mynginxapp
kubectl delete deployment mynginxapp

https://alexanderzeitler.com/articles/running-asp-net-core-on-minikube/
kubectl api-versions

kubectl explain

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: hello-netcore-k8s
spec:
replicas: 3
template:
metadata:
labels:
app: hello-netcore-k8s
spec:
containers:
- name: hello-netcore-k8s
image: hello-netcore-k8s
ports:
- containerPort: 80

kubectl create -f deployment.yaml

docker context use default

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-docker-
cli?tabs=azure-cli
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal

https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-
windows?view=powershell-7.2

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-docker-
cli?tabs=azure-cli
Connect-AzAccount -DeviceCode
https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine questpondacr.azurecr.io
docker run -it --rm -p 8080:80 questpondacr.azurecr.io/v1

kubectl create deployment hello3-minikube --image=


questponacr.azurecr.io/mvcoreimage:latest

kubectl expose deployment hello1-minikube --type=NodePort --


port=8081
minikube image load imagename:tag

kubectl create deployment hello3-minikube --image=


questponacr.azurecr.io/mvcoreimage:latest
--overrides='{ "spec": { "template": { "spec": { "imagePullSecrets": [{"name": " sec123 "}] } } } }'

docker tag myimage questacr1001.azurecr.io/myimage:latest

docker push questacr1001.azurecr.io/myimage:latest


az acr login questpondacr

https://docs.microsoft.com/pt-br/azure/container-registry/container-registry-auth-kubernetes

https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration?tabs=azure-cli

APIM

https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-policies#-how-
to-configure-policies

https://docs.microsoft.com/en-us/azure/api-management/transform-api

Products

https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-add-
products?tabs=azure-portal

Front door service , Load balancers

https://docs.microsoft.com/en-in/azure/cdn/cdn-create-new-endpoint

All people seem to need data processing


https://www.networkworld.com/article/3239677/the-osi-model-explained-and-how-to-easily-
remember-its-7-layers.html

https://docs.microsoft.com/en-us/azure/load-balancer/quickstart-load-balancer-standard-public-
portal

https://docs.microsoft.com/en-us/azure/traffic-manager/quickstart-create-traffic-manager-profile

https://loadium.io/

1. You can not use free app service

Both app service should be in different georgraphy

2. https://docs.microsoft.com/en-us/azure/firewall/tutorial-firewall-deploy-portal-
policy#configure-a-network-rule

Powershell

Power Shell and Power Shell ISE

CMDlets :- Get-Process

Get Set kk-lll

Get-Service -Name x*

Get-Service | Sort-Object -property Status

$MyVariable = 1, 2, 3

Azure PowerShell Az module

Azure power Shell module

Shw online power Shell

Open an elevated PowerShell prompt and in order to allow the execution of scripts signed by a
trusted publisher run

Set-ExecutionPolicy RemoteSigned

Run Install-Module -Name Az -AllowClobber

Connect-AzAccount
https://docs.microsoft.com/en-us/powershell/azure/azureps-vm-tutorial?view=azps-7.1.0

1. How and where to store the PowerShell script in Azure.

2. How to schedule the PS script in Azure to do a specific job everyday at a particular time.?
$psversiontable

Azure security

For OAuth2.0 https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-


protect-backend-with-aad

Step 1 :- Created APIM (1 hour)


Step 2:- Create WebAPI and publishing to App Service
Step 3:- AppService API I will add to APIM
Step 4:- Create Server application register in AAD

Step 5:- Create Client application Server register in AAD

Step 6 :- Create Secret ke in the client app


Step 7:- Client App given Access to Server application , Grant permission in AAD
Step 8 :- Attach the Client key , Server Auth , Token..WebAPIM
Step 9 :- Inbound Jwt check
Step 10… Final call from developer Client

Using open id onnect

Azure telemetry

Azure Application Insights sends telemetry from your web application to the Azure portal, so that
you can analyze the performance and usage of your application.

Metric , Log , Event


Alert

Azure telemetry
Application insight

Logging , Trace , Event Metrics , Alert, Telemetry


Trace - used either directly, or through an adapter to implement diagnostics logging using an
instrumentation framework that is familiar to you, such as Log4Net or System.Diagnostics.

Event - typically used to capture user interaction with your service, to analyze usage patterns.

Metric - used to report periodic scalar measurements.


Log text was not seen..

Dependency telemetry

https://squaredup.com/blog/kusto-101-a-jumpstart-guide-to-kql/

|TableName

AppServiceAppLogs

| where ResultDescription contains "Application"

AppServiceAppLogs

| where ResultDescription contains "Application"

| order by OperationName

AppServiceAppLogs

| project ResultDescription , Level

AppServiceAppLogs

| where TimeGenerated > todatetime('3/11/2022')

AppServiceAppLogs

| where TimeGenerated > todatetime('3/11/2022')

| summarize Count=count() by Source

How can we query the logs / metrics in to .NET Core.

You might also like