Experiencing Data Access issue in Azure Portal for Many Data Types – 09/18 – Investigating

This article is contributed. See the original author and article here.

Update: Friday, 18 September 2020 20:21 UTC

We continue to investigate issues within Application Insights Live Metrics. Root cause is not fully understood at this time. Some customers continue to experience issues viewing their Live Metrics data. We are working to establish the start time for the issue, initial findings indicate that the problem began at 9/18 7:00 UTC. We currently have no estimate for resolution.

  • Work Around: None
  • Next Update: Before 09/18 23:30 UTC

-Ian


[Guest Blog] My Journey to Ethical AI

[Guest Blog] My Journey to Ethical AI

This article is contributed. See the original author and article here.

This article by Humans of IT Student Ambassador Olivia Asemota, a Computer Science undergrad student from Xavier University of Louisiana is part of our Student Ambassador Spotlight series in the lead-up to Microsoft Ignite. Olivia shares about her passion for computer science and ethics, and her future aspirations to blend the two together in her future career. 

 

oliviaa.jpg

 

My journey into the world of computer science and technology began quite differently from other people. For me, it began when I thought I broke the internet. I remember playing on my father’s computer, not really knowing what I was doing, but, nevertheless, pressing as many buttons as I could. I somehow got into the developer tools of the browser and deleted everything on the screen. I immediately froze – did I just break the browser, or worse, the entire Internet? My initial instinct was to get up, run, and never face my dad again, but a quick hit of the refresh button and everything was back to normal.

 

Though daunting, this slightly traumatic experience is what jumpstarted my fascination with technology. I didn’t know what I did, but curiosity got the best of me, and I began trying to replicate my actions in the days following. Those experiments introduced me to the world of programming and I immediately knew that I had to learn more. From there, I began to scour the internet for online courses so I could better understand what I stumbled upon. I found lessons in Python, Java, HTML, and JavaScript, and I quickly fell in love with the creativity of programming. I grew up thinking that I had to be an artist or actor in order to be creative, but coding taught me that this was not the case. I could write code to do whatever I set my young, imaginative, mind to. It was liberating and exciting. 

            IMG_1035-2.jpg

 

Once I got to college, I knew Computer Science would be my major. I already had dreams of working at top tech companies or starting my own business. I knew I wanted to use the skills and knowledge I gained to help other people in the best way I could. However, during that first year in college, I discovered a new passion that I believe will tie closely with my software engineering endeavors. I discovered a deep love for philosophy and ethics.

 

I have always been aware of the good and bad sides of technology. I love how it has shaped our world and expanded our ability to connect with people who have similar interests and beliefs as we do. We have the ability to provide aid to people on the other side of the world whether it’s through monetary or vocal support. But I think there are certain ethical standards that we need to hold ourselves to, especially as it applies to AI and how it affects the lives of people around the world. Blending tech and philosophy was truly eye-opening for me.

 

My goal in the next 10 years of my life is to become a research scientist in Artificial Intelligence and Machine Learning. I want to help build ethical technology that benefits everyone. I believe this starts with learning about different ethical theories and how they can be applied to AI and ML. There are so many positive possibilities that these technological advancements can give us, and I’m excited to see how it continues to shape our world for the better. This is where my two passions meet. I want to help create better systems for more people, and I think it’s not far out of my reach. I truly believe to begin solving these problems, we need to understand how different aspects of our society affect the way we think and thus, the way we create. Our tools and platforms are a reflection of our thoughts and feelings and maybe this is where we should begin as we move forward.

 

I don’t have all of the answers. I believe this problem challenges us to reevaluate our connection with our environment and other people. But I do not think hope is lost. We just need to be bold and to take the right risks, and I’m optimistic that our society and way of living can be much better than ever before.

 

#HumansofIT

#StudentAmbassadors

Sysmon v12.0, Process Monitor v3.60, Procdump v10.0 and ARM64 ports

This article is contributed. See the original author and article here.

Sysmon v12.0

In addition to several bug fixes, this major update to Sysmon adds support for capturing clipboard operations to help incident responders retrieve attacker RDP file and command drops, including originating remote machine IP addresses.
 

Process Monitor v3.60

This update to Process Monitor, a utility that logs process file, network and registry activity, adds support for multiple filter item selection, as well as decoding for new file system control operations and error status codes.
 

Procdump v10.0

This release of Procdump, a flexible tool for manual and trigger-based process dump generation, adds support for dump cancellation and CoreCLR processes.
 

ARM64 ports

In addition, several tools have been newly ported to and are now available for ARM64. These include: AdInsight v1.2, AutoLogon v3.1, Autoruns v13.98, ClockRes v2.1, DebugView v4.9, DiskExt v1.2, FindLinks v1.1, Handle v4.22, Hex2Dec v1.1, Junction v1.07, PendMoves v1.02, PipeList v1.02, Procdump v10.0, Process Explorer v16.32, RegDelNull v1.11, RU v1.2, Sigcheck v2.8, Streams v1.6, Sync v2.2, VMMap v3.26, WhoIs v1.21 and ZoomIt v4.52. Download all ARM64 tools in a single download with the Sysinternals Suite for ARM64.
Geospatial joins are now supported by Azure Data Explorer

Geospatial joins are now supported by Azure Data Explorer

This article is contributed. See the original author and article here.

This blog post covers a new geo function and the basics of geospatial joins.

 

geo_polygon_to_s2cells

geo_polygon_to_s2cells takes a polygon or multipolygon and a S2 cell level as input and creates an array of all token strings which cover it. Be aware that covering a large-area polygon with small-area cells can lead to a huge amount of covering cells. As a result, the query might return null.

 

KQL-Query:

 

let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[0,50],[100,50],[0,0]]]});
print s2_cell_token_count = array_length(geo_polygon_to_s2cells(polygon, 5));

 

 Result:

s2_cell_token_count
286

 

Geospatial joins

This query pattern is oftentimes used in various mobility solutions (geospatial telemetry and static reference data), geospatial risk analysis and agriculture optimization using weather data. It is based on the three-dimensional S2 geometry and the functions geo_polygon_to_s2cells and geo_point_in_polygon. By use of this functionality a geospatial join consists of a coarse-grained join using the S2 cell coverage and the exact validation using the geo_point_in_polygon function.

 

The four main steps:

  1. Converting polygons to S2 cells of level k,
  2. Converting points to the same S2 cells level k,
  3. Joining on S2 cells,
  4. Filtering by geo_point_in_polygon().

 

The following picture explains the flow of the entire KQL query. First you need to choose the right S2 cell level. It should not be too big and not too small (it is not recommended to use more than 10.000 cells, 65535 are possible in theory). Second you are creating the S2 cell tokens for the static dataset. Next you are joining the polygons with the timeseries based on the tokens. This provides you with a dataset which might still has some false positives (S2 cell overlap) and that is why you need to end the statement with a check if the actual point is in the polygon.

geospatialJoin.png

 

This is a concrete example of a geospatial join based on the StormEvents and US_States table located on the help cluster. It calculates the damage in $ by state.

 

KQL-Query:

 

let join_level = 4; 
US_States 
| project State = features.properties.NAME, polygon = features.geometry 
| extend covering = geo_polygon_to_s2cells(polygon, join_level) 
| mv-expand covering to typeof(string) 
| join kind = inner hint.strategy = broadcast 
( 
  StormEvents 
  | project BeginLon, BeginLat , DamageProperty 
  | extend covering = geo_point_to_s2cell(BeginLon, BeginLat, join_level) 
) on covering 
| where geo_point_in_polygon(BeginLon, BeginLat, polygon) 
| summarize CountOfEvents=count(), DamageInDollar=sum(DamageProperty) by tostring(State) 
| top 3 by DamageInDollar desc

 

Result:

State CountOfEvents DamageInDollar

Kansas

2298

533352500

Texas

3889

488525500

Ohio

852

371630500

Alternative Tools for Application Hangs

Alternative Tools for Application Hangs

This article is contributed. See the original author and article here.

My name is Susan Buchanan and today I’d like to discuss some basic troubleshooting for applications hangs using Task Manager, Resource Monitor, and WaitingOn outside of getting an application dump.  A special shout out to Leo Fagundes for writing the WaitingOn application.

Troubleshooting application hangs is key to resolution. Getting an application dump will not always be a smoking gun and should be used as a last resort for various reasons as missing symbols for 3rd party applications or waiting on other processes.

 

Task Manager & Resource Monitor – Analyze Wait Chain: Beginning with Windows 8, in 2014 we added new options into Task Manager as well as Resource Monitor was the “Analyze Wait Chain” option when you right-click on a task in the Details view. This allows you to see what processes are waiting for a resource that is being used by another process.

 

WaitingOn.exe a simple tool that helps troubleshoot hung applications and services. 

WaitingOn.exe is available at https://github.com/leonardomsft/WaitingOn/releases/download/v1.1/WaitingOn.exe, and besides functional, it’s still experimental. Use it with caution. If you install it on a customer’s machine, please remove it at the end of the troubleshooting session.

WaitingOn.exe displays all the blocked threads from a process and what they are Waiting On. It can also display all blocked threads for all processes in the system.

WaitingOn.exe leverages the Wait Chain Traversal (WCT) API introduced in Windows 2008/Vista. The WCT API is the one behind the “Analyze Wait Chain” functionality in Task Manager and Resource Monitor.

 

Task Manager

One of the new options added into Task Manager in recent versions was the “Analyze Wait Chain” option when you right-click on a task in the Details view. This allows you to see what processes are waiting for a resource that is being used by another process.

What this means is that if you have an application hanging for some reason, you can analyze the wait chain to see whether it is waiting on something that is in use.

TeedaN_0-1600442457986.png

 

For instance, we printed from Word, and then used this option while the print process was happening to see what would happen. In this case, Word was waiting for splwow64.exe, which handles printing from 32-bit applications.

TeedaN_1-1600442457996.png

 

It’s worth noting that because Word is written properly, the GUI interface doesn’t actually hang while it is waiting for the other process. 

In this case the process is working correctly and is not hung.

For 3rd party applications, it may show you other processes it is waiting on.  If the selected process is waiting for another process, a tree organized by dependency on other processes will be displayed. (See screenshot above).
NOTE: Many system processes depend on other processes and services for normal operation. Both Task Manager and Resource Monitor will display wait chain information for any process.

 

In a second scenario BadApp.exe is not responding

TeedaN_2-1600442458006.png

 

 

We attempt to Analyze Wait Chain from within Task Manager

TeedaN_3-1600442458009.png

 

If the application is not waiting on anything, it will be empty:

TeedaN_4-1600442458018.png

 

If the application is waiting on something, it will show the process it is waiting for:

TeedaN_5-1600442458027.jpeg

(In this example you can see that Perfmon is waiting on a svchost). We will dig deeper into this in a few moments.

 

Resource Monitor

Use case example: Badapp

Start Resource Monitor by either typing ResMon from the search box or starting the Resource Monitor icon from the Start Menu.

TeedaN_6-1600442458029.png

 

In Resource Monitor we see badapp.exe is not responding.

TeedaN_7-1600442458047.png

 

If a process entry in the table is not red, if the process status is Running, and if the program is operating normally, then no action should be required by you.
If a process entry in the table is red, if the process status is not running, and if the program is  not operating normally, then you can try killing the process it is waiting on starting with the child processes in red first, then moving to the parent processes.

You can start a “wait chain analysis” from Resource Monitor as well, simply do a right click on the process you want to investigate.

 

Using WaitingOn.exe & it’s Advantages

WaitingOn.exe has the following advantages over Task Manager and Resource Monitor:

  1. It displays what type of object is blocking the thread.
  2. It displays the name of the object blocking the thread.
  3. It can be scripted.
  4. It can be run against a computer that you can’t logon (by using PsExec or Remote Powershell).

WaitingOn.exe was built on top of the sample WCF code available in the MSDN documentation.

 

Use case example: Badapp

TeedaN_8-1600442458053.png

As seen earlier, this process is the parent process that is hung and is not waiting on any other processes thread.


Use case example : Perfmon

In this example, we had a hung perfmon.exe window that was not responding to mouse clicks. Attempting to run the Analyze Wait Chain command from Task Manager produced the following results:

TeedaN_9-1600442458070.jpeg

 

We can see that perfmon.exe (PID 3292) is waiting on an svchost process (PID 1564), but since it hosts many services, there is not much we can do.

<background information>
If you encounter a service host with multiple services, always consider isolating the services. In Windows 10 / WS 2016 we have introduced the change by default (if you have more than 4 GB RAM). To isolate a service, we use the sc.exe command line tool:
sc config <servicename> type= own
Important: there is a space between type= and own which is required!
https://docs.microsoft.com/de-de/windows-server/administration/windows-commands/sc-config
</background information>

Now, running WaitingOn.exe against the hung perfmon.exe revealed that Thread 7352 was blocked by an Alpc called “RPC ControlDNSResolver”, which was found in the svchost.exe handle list:

TeedaN_10-1600442458072.jpeg

 

We then can use Process Explorer to further investigate or kill that object (which might result in unexpected behavior!)

TeedaN_11-1600442458081.jpeg

 

In this case we decided to simply restart the associated service (DNS Cache service) which unfroze the perfmon.exe window.

 

Additional information:

Links within this article: