Skip to content

Commit dfaf52d

Browse files
authored
Merge pull request #2 from MicrosoftCloudEssentials-LearningHub/counter-testing
Counter testing
2 parents 3baf70e + 4d48060 commit dfaf52d

34 files changed

Lines changed: 394 additions & 202 deletions

File tree

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Use Visitor Counter Logic
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
schedule:
8+
- cron: '0 0 * * *' # Runs daily at midnight
9+
workflow_dispatch: # Allows manual triggering
10+
11+
permissions:
12+
contents: write
13+
pull-requests: write
14+
15+
jobs:
16+
update-visitor-count:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: Checkout current repository
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Shallow clone visitor counter logic
26+
run: git clone --depth=1 https://github.com/brown9804/github-visitor-counter.git
27+
28+
- name: Set up Node.js
29+
uses: actions/setup-node@v4
30+
with:
31+
node-version: '20'
32+
33+
- name: Install dependencies for github-visitor-counter
34+
run: |
35+
cd github-visitor-counter
36+
npm ci
37+
38+
- name: Run visitor counter logic (updates markdown badges and metrics.json)
39+
run: node github-visitor-counter/update_repo_views_counter.js
40+
env:
41+
TRAFFIC_TOKEN: ${{ secrets.TRAFFIC_TOKEN }}
42+
REPO: ${{ github.repository }}
43+
44+
- name: Move generated metrics.json to root
45+
run: mv github-visitor-counter/metrics.json .
46+
47+
- name: List files for debugging
48+
run: |
49+
ls -l
50+
ls -l github-visitor-counter
51+
52+
- name: Clean up visitor counter logic
53+
run: rm -rf github-visitor-counter
54+
55+
- name: Configure Git author
56+
run: |
57+
git config --global user.name "github-actions[bot]"
58+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
59+
60+
# Commit and push logic for PR events
61+
- name: Commit and push changes (PR)
62+
if: github.event_name == 'pull_request'
63+
env:
64+
TOKEN: ${{ secrets.GITHUB_TOKEN }}
65+
run: |
66+
git fetch origin
67+
git checkout ${{ github.head_ref }}
68+
git add "*.md" metrics.json
69+
git commit -m "Update visitor count" || echo "No changes to commit"
70+
git remote set-url origin https://x-access-token:${TOKEN}@github.com/${{ github.repository }}
71+
git pull --rebase origin ${{ github.head_ref }} || echo "No rebase needed"
72+
git push origin HEAD:${{ github.head_ref }}
73+
74+
# Commit and push logic for non-PR events (schedule, workflow_dispatch)
75+
- name: Commit and push changes (non-PR)
76+
if: github.event_name != 'pull_request'
77+
env:
78+
TOKEN: ${{ secrets.GITHUB_TOKEN }}
79+
run: |
80+
git fetch origin
81+
git checkout ${{ github.ref_name }} || git checkout -b ${{ github.ref_name }} origin/${{ github.ref_name }}
82+
git add "*.md" metrics.json
83+
git commit -m "Update visitor count" || echo "No changes to commit"
84+
git remote set-url origin https://x-access-token:${TOKEN}@github.com/${{ github.repository }}
85+
git pull --rebase origin ${{ github.ref_name }} || echo "No rebase needed"
86+
git push origin HEAD:${{ github.ref_name }}
87+
88+
- name: Create Pull Request (non-PR)
89+
if: github.event_name != 'pull_request'
90+
uses: peter-evans/create-pull-request@v6
91+
with:
92+
token: ${{ secrets.GITHUB_TOKEN }}
93+
branch: update-visitor-count
94+
title: "Update visitor count"
95+
body: "Automated update of visitor count"
96+
base: main

Purview/Cost-Estimation.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Last updated: 2025-07-17
3030

3131
> [!IMPORTANT]
3232
> The general formula to keep in mind for estimating the cost of Microsoft Purview is: <br/>
33+
>
3334
> - **Cost of Data Map**: Calculated based on the number of capacity units and the price per capacity unit per hour. <br/>
3435
> - **Cost of Scanning**: Calculated based on the total duration (in minutes) of all scans in a month, divided by 60 minutes per hour, multiplied by the number of vCores per scan, and the price per vCore per hour. <br/>
3536
> - **Cost of Resource Set**: Calculated based on the total duration (in hours) of processing resource set data assets in a month, multiplied by the price per vCore per hour.
@@ -38,26 +39,29 @@ Last updated: 2025-07-17
3839
$$
3940

4041
1. Data Map (Always on):
41-
- Number of Capacity Units: Typically 1
42-
- Total Hours in a Month: 730 hours
43-
- Price per Capacity Unit per Hour: \$0.411
42+
43+
- Number of Capacity Units: Typically 1
44+
- Total Hours in a Month: 730 hours
45+
- Price per Capacity Unit per Hour: \$0.411
4446

4547
$$
4648
\text{Total Cost for Data Map} = \text{Number of Capacity Units} \times \text{Total Hours in a Month} \times \text{Price per Capacity Unit per Hour}
4749
$$
4850

4951
2. Scanning (Pay as you go):
50-
- Total Minutes of Scanning in a Month: [M] minutes
51-
- Number of vCores per Scan: 32
52-
- Price per vCore per Hour: \$0.63
52+
53+
- Total Minutes of Scanning in a Month: [M] minutes
54+
- Number of vCores per Scan: 32
55+
- Price per vCore per Hour: \$0.63
5356

5457
$$
5558
\text{Total Cost for Scanning} = \left( \frac{\text{Total Minutes of Scanning in a Month}}{60} \right) \times \text{Number of vCores per Scan} \times \text{Price per vCore per Hour}
5659
$$
5760

5861
3. Resource Set:
59-
- Total Hours of Processing in a Month: [H] hours
60-
- Price per vCore per Hour: \$0.21
62+
63+
- Total Hours of Processing in a Month: [H] hours
64+
- Price per vCore per Hour: \$0.21
6165

6266
$$
6367
\text{Total Cost for Resource Set} = \text{Total Hours of Processing in a Month} \times \text{Price per vCore per Hour}
@@ -117,10 +121,11 @@ $$
117121
## Cost Estimation for Different Metadata Volumes
118122

119123
> [!IMPORTANT]
120-
> Microsoft Purview `scans metadata to classify, label, and protect data assets`. It does `not scan the actual data content but rather the information about the data`. <br/>
121-
> `The size of the data itself does not directly` impact the cost of `metadata scanning unless it affects the amount of metadata generated`. The `number of metadata assets and their complexity` are the primary factors influencing costs.
124+
> Microsoft Purview `scans metadata to classify, label, and protect data assets`. It does `not scan the actual data content but rather the information about the data`. <br/>
125+
> `The size of the data itself does not directly` impact the cost of `metadata scanning unless it affects the amount of metadata generated`. The `number of metadata assets and their complexity` are the primary factors influencing costs.
122126
123127
Assumptions:
128+
124129
- The number of metadata assets is assumed based on the data volume, with an average size of 1 MB per metadata asset.
125130
- The average size of each metadata asset is assumed to be 1 MB.
126131
- These estimates are based on the assumption that the governed assets and data management costs are applied for 100 hours per month. Actual costs may vary based on specific agreements with Microsoft, usage patterns, etc.
@@ -145,7 +150,7 @@ Assumptions:
145150
- Include **Managed Virtual Network** and **data transfer** costs if applicable.
146151
- Get a **real-time, region-specific estimate** (e.g., for Costa Rica or any other region).
147152

148-
https://github.com/user-attachments/assets/05521c11-6666-4fc8-9046-14d6958798ef
153+
<https://github.com/user-attachments/assets/05521c11-6666-4fc8-9046-14d6958798ef>
149154

150155
## Additional Considerations
151156

@@ -161,7 +166,7 @@ Assumptions:
161166

162167
<!-- START BADGE -->
163168
<div align="center">
164-
<img src="https://img.shields.io/badge/Total%20views-31-limegreen" alt="Total views">
165-
<p>Refresh Date: 2025-07-16</p>
169+
<img src="https://img.shields.io/badge/Total%20views-2-limegreen" alt="Total views">
170+
<p>Refresh Date: 2025-07-17</p>
166171
</div>
167172
<!-- END BADGE -->

Purview/DLP-Overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Last updated: 2025-07-17
7979

8080
<!-- START BADGE -->
8181
<div align="center">
82-
<img src="https://img.shields.io/badge/Total%20views-31-limegreen" alt="Total views">
83-
<p>Refresh Date: 2025-07-16</p>
82+
<img src="https://img.shields.io/badge/Total%20views-2-limegreen" alt="Total views">
83+
<p>Refresh Date: 2025-07-17</p>
8484
</div>
8585
<!-- END BADGE -->

Purview/DLP-implementation.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ Last updated: 2025-07-17
3131

3232
<img width="550" alt="image" src="https://github.com/user-attachments/assets/da6ef80f-7ca8-456a-993d-a6d40bb28c53" />
3333

34-
3534
- Select `Policies` > `Create policy`:
3635

3736
<img width="550" alt="image" src="https://github.com/user-attachments/assets/85f706eb-276e-4f7f-998f-f44bcf8fbfc3" />
@@ -40,7 +39,6 @@ Last updated: 2025-07-17
4039

4140
<img width="550" alt="image" src="https://github.com/user-attachments/assets/b4128763-851e-46ee-8a74-fdf189fa8762">
4241

43-
4442
## Define Policy Scope
4543

4644
- Select the locations where the policy will apply (e.g., Exchange email, SharePoint sites, OneDrive accounts, Teams chat).
@@ -56,9 +54,7 @@ Last updated: 2025-07-17
5654

5755
<img width="550" alt="image" src="https://github.com/user-attachments/assets/bab1c3cf-2bc0-4646-aa8f-92805d68e30f" />
5856

59-
60-
https://github.com/user-attachments/assets/a9165b97-f197-4f37-877e-9776015a3297
61-
57+
<https://github.com/user-attachments/assets/a9165b97-f197-4f37-877e-9776015a3297>
6258

6359
## Set Up Alerts and Notifications
6460

@@ -71,7 +67,7 @@ Last updated: 2025-07-17
7167

7268
## Customize access and override settings
7369

74-
https://github.com/user-attachments/assets/eb3d57d3-5bef-43f2-b069-1d25c3ef047b
70+
<https://github.com/user-attachments/assets/eb3d57d3-5bef-43f2-b069-1d25c3ef047b>
7571

7672
## Test and Deploy the Policy
7773

@@ -81,7 +77,7 @@ https://github.com/user-attachments/assets/eb3d57d3-5bef-43f2-b069-1d25c3ef047b
8177

8278
<img width="550" alt="image" src="https://github.com/user-attachments/assets/944945f0-ad0c-49ea-b157-47613c48590b" />
8379

84-
https://github.com/user-attachments/assets/0a38b331-33e8-4e15-96be-3edbe79119f6
80+
<https://github.com/user-attachments/assets/0a38b331-33e8-4e15-96be-3edbe79119f6>
8581

8682
## Monitor and Manage Policies
8783

@@ -95,7 +91,7 @@ https://github.com/user-attachments/assets/eb3d57d3-5bef-43f2-b069-1d25c3ef047b
9591

9692
<!-- START BADGE -->
9793
<div align="center">
98-
<img src="https://img.shields.io/badge/Total%20views-31-limegreen" alt="Total views">
99-
<p>Refresh Date: 2025-07-16</p>
94+
<img src="https://img.shields.io/badge/Total%20views-2-limegreen" alt="Total views">
95+
<p>Refresh Date: 2025-07-17</p>
10096
</div>
10197
<!-- END BADGE -->

Purview/Free-and-Enterprise.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ Last updated: 2025-07-17
3131
- [Free vs Enterprise](#free-vs-enterprise)
3232
- [Overview](#overview)
3333
- [Microsoft Purview Pricing Model](#microsoft-purview-pricing-model)
34-
- [Key Differences](#key-differences)
34+
- [Key Differences](#key-differences)
3535
- [How Microsoft Purview can be used](#how-microsoft-purview-can-be-used)
36-
- [Scenario 1: Data Governance for a Financial Institution](#scenario-1-data-governance-for-a-financial-institution)
37-
- [Scenario 2: Data Protection for a Healthcare Provider](#scenario-2-data-protection-for-a-healthcare-provider)
38-
- [Scenario 3: Data Analytics for an E-commerce Company](#scenario-3-data-analytics-for-an-e-commerce-company)
39-
- [Scenario 4: Compliance Management for a Global Enterprise](#scenario-4-compliance-management-for-a-global-enterprise)
36+
- [Scenario 1: Data Governance for a Financial Institution](#scenario-1-data-governance-for-a-financial-institution)
37+
- [Scenario 2: Data Protection for a Healthcare Provider](#scenario-2-data-protection-for-a-healthcare-provider)
38+
- [Scenario 3: Data Analytics for an E-commerce Company](#scenario-3-data-analytics-for-an-e-commerce-company)
39+
- [Scenario 4: Compliance Management for a Global Enterprise](#scenario-4-compliance-management-for-a-global-enterprise)
4040
- [Examples of use cases](#examples-of-use-cases)
4141
- [Collect metadata information from Apache Airflow](#collect-metadata-information-from-apache-airflow)
4242

@@ -72,6 +72,7 @@ Last updated: 2025-07-17
7272
## Overview
7373

7474
> Keypoints of Microsoft Purview: <br/>
75+
>
7576
> 1. `Integration with Microsoft Ecosystem`: Purview offers deep integration with Azure, Power BI, and Microsoft 365, providing a seamless experience for organizations already using these tools. <br/>
7677
> 2. `Advanced Governance and Compliance`: Purview provides robust governance and compliance features, ensuring your data management practices meet regulatory standards. <br/>
7778
> 3. `AI-Powered Search and Discovery`: With AI-driven capabilities, Purview enhances data discovery and classification, making it easier to find and manage data assets. <br/>
@@ -521,18 +522,20 @@ Find below different scenarios to manage data governance, protection, and compli
521522
> This capability is currently in public preview and is achieved through integration with **OpenLineage**, an open framework for data lineage collection and analysis.
522523
523524
How it works:
525+
524526
1. **Enable OpenLineage in Airflow**: By enabling OpenLineage in your Airflow instance, metadata and lineage information about jobs and datasets are automatically tracked as Directed Acyclic Graphs (DAGs) execute.
525527
2. **Azure Event Hubs**: The tracked metadata and lineage information are sent to an Azure Event Hubs instance that you configure.
526528
3. **Microsoft Purview**: Purview subscribes to the events from Azure Event Hubs, parses them, and ingests the metadata and lineage into the data map.
527529

528530
This integration supports capturing metadata such as:
531+
529532
- Airflow workspace
530533
- Airflow DAG
531534
- Airflow task
532535

533536
<!-- START BADGE -->
534537
<div align="center">
535-
<img src="https://img.shields.io/badge/Total%20views-31-limegreen" alt="Total views">
536-
<p>Refresh Date: 2025-07-16</p>
538+
<img src="https://img.shields.io/badge/Total%20views-2-limegreen" alt="Total views">
539+
<p>Refresh Date: 2025-07-17</p>
537540
</div>
538541
<!-- END BADGE -->

README.md

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Last updated: 2025-07-17
1818

1919
</details>
2020

21-
2221
> [!IMPORTANT]
2322
> The [Azure Databases Advisor Tool](https://microsoftcloudessentials-learninghub.github.io/Azure-Databases-Purview-Advisor/) is designed to help users select the most suitable Azure database service based on their specific use case. It provides recommendations by analyzing user inputs such as data type, scalability needs, latency requirements, and more.
2423
> The information provided and any document (such as scripts, sample codes, etc.) is provided `AS-IS` and `WITH ALL FAULTS`. Pricing estimates are for `demonstration purposes only and do not reflect final pricing`. `Microsoft assumes no liability` for your use of this information and makes no guarantees or warranties, expressed or implied, regarding its accuracy or completeness, including any pricing details. `Please note that these demos are intended as a guide and are based on personal experiences. For official guidance, support, or more detailed information, please refer to Microsoft's official documentation or contact Microsoft directly`: [Microsoft Sales and Support](https://support.microsoft.com/contactus?ContactUsExperienceEntryPointAssetId=S.HP.SMC-HOME)
@@ -33,30 +32,29 @@ Last updated: 2025-07-17
3332
<summary><b>Details</b> (Click to expand)</summary>
3433

3534
> - **Formats**<br/>
36-
> - Structured: Stored in predefined formats like rows and columns with consistent schema enforcement.<br/>
37-
> - Unstructured: Exists in diverse formats like free text, images, audio, video, and documents that lack a formal structure.<br/>
35+
> - Structured: Stored in predefined formats like rows and columns with consistent schema enforcement.<br/>
36+
> - Unstructured: Exists in diverse formats like free text, images, audio, video, and documents that lack a formal structure.<br/>
3837
> - **Storage Model**<br/>
39-
> - Structured: Uses rigid, predefined schemas in relational databases ensuring integrity and data validation.<br/>
40-
> - Unstructured: Stored in flexible formats such as object storage, document stores, or blob storage without a fixed schema.<br/>
38+
> - Structured: Uses rigid, predefined schemas in relational databases ensuring integrity and data validation.<br/>
39+
> - Unstructured: Stored in flexible formats such as object storage, document stores, or blob storage without a fixed schema.<br/>
4140
> - **Databases**<br/>
42-
> - Structured: Managed through SQL-based systems like Azure SQL, MySQL, and PostgreSQL.<br/>
43-
> - Unstructured: Supported by NoSQL systems like Cosmos DB, MongoDB, and cloud-native data lakes.<br/>
41+
> - Structured: Managed through SQL-based systems like Azure SQL, MySQL, and PostgreSQL.<br/>
42+
> - Unstructured: Supported by NoSQL systems like Cosmos DB, MongoDB, and cloud-native data lakes.<br/>
4443
> - **Ease of Search**<br/>
45-
> - Structured: Easily queried using SQL, indexing, and standardized query languages.<br/>
46-
> - Unstructured: Requires more advanced approaches like keyword extraction, OCR, or AI-assisted search tools.<br/>
44+
> - Structured: Easily queried using SQL, indexing, and standardized query languages.<br/>
45+
> - Unstructured: Requires more advanced approaches like keyword extraction, OCR, or AI-assisted search tools.<br/>
4746
> - **Analysis Methods**<br/>
48-
> - Structured: Suited for quantitative techniques, including statistical modeling, trend analysis, and aggregation.<br/>
49-
> - Unstructured: Often analyzed with qualitative approaches like NLP, sentiment analysis, topic modeling, or deep learning.<br/>
47+
> - Structured: Suited for quantitative techniques, including statistical modeling, trend analysis, and aggregation.<br/>
48+
> - Unstructured: Often analyzed with qualitative approaches like NLP, sentiment analysis, topic modeling, or deep learning.<br/>
5049
> - **Tools and Technologies**<br/>
51-
> - Structured: RDBMS (SQL Server, Oracle), OLTP systems, CRM platforms, and OLAP tools for analytics.<br/>
52-
> - Unstructured: NoSQL DBMS, data mining frameworks, ML pipelines, AI services, and visualization platforms like Power BI.<br/>
50+
> - Structured: RDBMS (SQL Server, Oracle), OLTP systems, CRM platforms, and OLAP tools for analytics.<br/>
51+
> - Unstructured: NoSQL DBMS, data mining frameworks, ML pipelines, AI services, and visualization platforms like Power BI.<br/>
5352
> - **Specialists**<br/>
54-
> - Structured: Typically handled by business analysts, software engineers, solution architects, and DBAs.<br/>
55-
> - Unstructured: Requires data scientists, AI/ML specialists, information architects, and advanced data engineers.<br/>
53+
> - Structured: Typically handled by business analysts, software engineers, solution architects, and DBAs.<br/>
54+
> - Unstructured: Requires data scientists, AI/ML specialists, information architects, and advanced data engineers.<br/>
5655
5756
</details>
5857

59-
6058
## Products/Services
6159

6260
```mermaid
@@ -127,7 +125,7 @@ Click here to read more about a [quick guide on SQL Server on Azure Virtual Mach
127125
<details>
128126
<summary><b>Azure Database for PostgreSQL</b> (PaaS) - Click to expand </summary>
129127

130-
> Enterprise-ready community PostgreSQL database service, fully managed by Microsoft.
128+
> Enterprise-ready community PostgreSQL database service, fully managed by Microsoft.
131129
132130
> - **Benefits:** High availability with up to 99.99% SLA, built-in security, and scalability.<br/>
133131
> - **Differentiators:** Supports PostgreSQL extensions and advanced indexing options.<br/>
@@ -169,7 +167,7 @@ Click here to read more about a [quick guide on Oracle Database on Azure](./sql/
169167
<details>
170168
<summary><b>SQL Server 2022</b> (IaaS) - Click to expand </summary>
171169

172-
> Latest release of SQL Server with built-in hybrid and cloud-connected capabilities.
170+
> Latest release of SQL Server with built-in hybrid and cloud-connected capabilities.
173171
174172
> - **Benefits:** Brings innovations like ledger tables, Synapse Link, and built-in security enhancements.<br/>
175173
> - **Differentiators:** Full hybrid flexibility for modern apps with backward compatibility.<br/>
@@ -197,7 +195,7 @@ Click here to read more about a [quick guide on Azure Cosmos DB](./nosql/azure-c
197195
<details>
198196
<summary><b>Azure Managed Instance for Apache Cassandra</b> (PaaS) - Click to expand </summary>
199197

200-
> Managed Cassandra database service designed for massive scale and availability.
198+
> Managed Cassandra database service designed for massive scale and availability.
201199
202200
> - **Benefits:** Built-in automation, scalability, and hybrid deployment options.<br/>
203201
> - **Differentiators:** Supports native Cassandra drivers and schemas with Azure-managed benefits.<br/>
@@ -252,7 +250,7 @@ Click here to read more about a [quick guide on Azure Cache for Redis](./nosql/a
252250

253251
<!-- START BADGE -->
254252
<div align="center">
255-
<img src="https://img.shields.io/badge/Total%20views-31-limegreen" alt="Total views">
256-
<p>Refresh Date: 2025-07-16</p>
253+
<img src="https://img.shields.io/badge/Total%20views-2-limegreen" alt="Total views">
254+
<p>Refresh Date: 2025-07-17</p>
257255
</div>
258256
<!-- END BADGE -->

0 commit comments

Comments
 (0)