Skip to content

Commit a89f97f

Browse files
authored
Merge main to release/7.x for Preview 3
2 parents 0a6ad4c + 05d036e commit a89f97f

File tree

143 files changed

+46005
-213
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+46005
-213
lines changed

Build.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
@echo off
2-
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\build.ps1""" -restore -build %*"
2+
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -restore %*"
33
exit /b %ErrorLevel%

CMakeLists.txt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
cmake_minimum_required(VERSION 3.14)
2+
3+
project(dotnet-monitor)
4+
5+
include(eng/native/configurepaths.cmake)
6+
include(${CLR_ENG_NATIVE_DIR}/configurecompiler.cmake)
7+
8+
include_directories(
9+
src/external/runtime/src/coreclr/pal/prebuilt/inc
10+
src/inc
11+
)
12+
13+
if(CLR_CMAKE_HOST_UNIX)
14+
include_directories(
15+
src/external/runtime/src/coreclr/pal/inc/rt
16+
src/external/runtime/src/coreclr/pal/inc
17+
src/external/runtime/src/coreclr/inc
18+
src/inc/pal
19+
)
20+
add_compile_options(
21+
-DPAL_STDCPP_COMPAT
22+
)
23+
if(NOT CLR_CMAKE_HOST_OSX)
24+
add_link_options(
25+
--no-undefined
26+
)
27+
endif(NOT CLR_CMAKE_HOST_OSX)
28+
endif(CLR_CMAKE_HOST_UNIX)
29+
30+
set(PROFILER_SOURCES
31+
${CMAKE_CURRENT_LIST_DIR}/src/external/runtime/src/coreclr/pal/prebuilt/idl/corprof_i.cpp
32+
)
33+
34+
# Add version files
35+
if(CLR_CMAKE_HOST_WIN32)
36+
set(SOURCES
37+
${SOURCES}
38+
${PROJECT_BINARY_DIR}/NativeVersion.rc
39+
)
40+
else(CLR_CMAKE_HOST_WIN32)
41+
set(SOURCES
42+
${SOURCES}
43+
${PROJECT_BINARY_DIR}/version.c
44+
)
45+
endif(CLR_CMAKE_HOST_WIN32)
46+
47+
add_subdirectory(src/MonitorProfiler)

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ This repository contains the source code for dotnet-monitor, a diagnostic tool f
66

77
See [Releases](documentation/releases.md) for the release history.
88

9+
## Docs
10+
11+
[Docs](documentation/README.md) - Learn how to install, configure, and use dotnet-monitor.
12+
913
## Building the Repository
1014

1115
See [building instructions](documentation/building.md) in our documentation directory.

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ while [[ -h $source ]]; do
1313
done
1414

1515
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
16-
"$scriptroot/eng/common/build.sh" --restore -build $@
16+
"$scriptroot/eng/build.sh" --restore $@

documentation/release-process.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,19 @@
55
1. Merge from the `main` branch to the appropriate release branch (e.g. `release/5.0`).
66
1. In `/eng/Versions.props`, update `dotnet/diagnostics` dependencies to versions from the corresponding release of the `dotnet/diagnostics` repo.
77
1. In `/eng/Version.props`, ensure that `<BlobGroupBuildQuality>` is set appropriately. See the documentation next to this setting for the appropriate values. In release branches, its value should either be `prerelease` or `release`. This setting, in combination with the version settings, determine for which 'channel' the aks.ms links are created.
8-
4. Complete at least one successful build.
8+
1. Complete at least one successful build.
9+
1. Bump the version number in the `main` branch. [Example Pull Request](https://github.com/dotnet/dotnet-monitor/pull/1560).
10+
11+
## Additional steps when creating a new release branch
12+
13+
1. When creating a new release branch (such as `release/8.x`) there are additional steps that need to be taken.
14+
1. Follow [these steps](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#setting-up-your-darc-client) to install darc.
15+
1. Be sure to call [darc authenticate](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#authenticate). You will need to create the requested tokens.
16+
1. You will need to add the branch to a channel. E.g.
17+
`darc add-default-channel --channel ".NET Core Tooling Release" --branch release/8.x --repo https://github.com/dotnet/dotnet-monitor`
18+
19+
- It can be helpful to create test release branches (e.g. release/test/8.x). Note these branches will trigger warnings because they are considered unprotected release branches and should be deleted as soon as possible.
20+
- If you created a build from a newly created release branch without a channel, you will get the message 'target build already exists on all channels'. To use this build you need to add it to a channel: `darc add-build-to-channel --id <Build BAR ID> --channel "General Testing"`.
921

1022
## Build Release Branch
1123

@@ -29,12 +41,25 @@ The `channel` value is used by the `dotnet-docker` repository to consume the cor
2941

3042
The `dotnet-docker` repository runs an update process each day that detects the latest version of a given `dotnet-monitor` channel. During the stabilization/testing/release period for a release of `dotnet-monitor`, the update process should be changed to pick up builds for the release branch.
3143

32-
The `monitorChannel` pipeline variable of the [dotnet-docker-update-dependencies](https://dev.azure.com/dnceng/internal/_build?definitionId=470) pipeline instructs the update process of which channel to use in order to update the `nightly` branch. Normally, its value is `6.0/daily` to pull the latest daily build. However, during the stabilization and release of dotnet-monitor, it should be set to the prerelease channel (e.g. `6.0/preview.8`, `6.0/rc.1`) or release channel (e.g. `6.0/release`) value.
44+
The following variables for [dotnet-docker-update-dependencies](https://dev.azure.com/dnceng/internal/_build?definitionId=470) need to be updated for release:
45+
* `monitorXMinorVersion`: Make sure these are set to the correct values.
46+
* `monitorXQuality`: Normally this is daily, but should be set to release.
47+
* `monitorXStableBranding`: Normally this is false, but should be set to true when the package version is stable e.g. `dotnet-monitor.8.0.0.nupkg` (does not have a prerelease label on it such as `-preview.X` or `-rtm.X`.
48+
* `update-monitor-enabled`: Make sure this is true.
49+
* `update-dotnet-enabled`: When doing an ad-hoc run, make sure to **disable** this.
3350

3451
### Revert Pipeline Variable After Release
3552

3653
After the release has been completed, this pipeline variable should be changed to the appropriate daily channel (e.g. `6.0/daily`).
3754

55+
### Updating dependencies
56+
57+
If necessary, update dependencies in the release branch. Most commonly this means picking up a new version of diagnostics packages.
58+
59+
1. For new branches only, you need to setup a subscription using darc: `darc add-subscription --channel ".NET Core Tooling Release" --source-repo https://github.com/dotnet/diagnostics --target-repo https://github.com/dotnet/dotnet-monitor --target-branch release/8.x --update-frequency None --standard-automerge`
60+
1. Use `darc get-subscriptions --target-repo monitor` to see existing subscriptions.
61+
1. Use `darc trigger-subscriptions` to trigger an update. This will create a pull request that will update the Versions.details.xml file.
62+
3863
### Image Update Process
3964

4065
The `dotnet-docker` repository typically updates the `nightly` branch with newer versions each morning by creating a pull request that targets the `nightly` branch with the new version information which needs to be approved by the `dotnet-docker` team. Upon completion, the `nightly` branch build will automatically run and create the new nightly images.
@@ -58,9 +83,15 @@ The nightly image is `mcr.microsoft.com/dotnet/nightly/monitor`. The tag list is
5883
5984
The remainder of the release will automatically push NuGet packages to nuget.org, [tag](https://github.com/dotnet/dotnet-monitor/tags) the commit from the build with the release version, and add a new [GitHub release](https://github.com/dotnet/dotnet-monitor/releases).
6085

86+
## Release to Storage Accounts
87+
88+
1. Approximately 3 days before Docker image release, execute a dry-run of the [dotnet-monitor-release](https://dev.azure.com/dnceng/internal/_build?definitionId=1103) pipeline (`IsDryRun` should be checked; uncheck `IsTestRun`; under `Resources`, select the `dotnet monitor` build from which assets will be published). This will validate that the nupkg files can be published to the `dotnetcli` storage account and checksums can be published to the `dotnetclichecksums` storage account.
89+
1. The day before Docker image release, execute run of the [dotnet-monitor-release](https://dev.azure.com/dnceng/internal/_build?definitionId=1103) pipeline (uncheck `IsDryRun`; uncheck `IsTestRun`; under `Resources`, select the `dotnet monitor` build from which assets will be published). This will publish the nupkg files to the `dotnetcli` storage account and the checksums to the `dotnetclichecksums` storage account.
90+
6191
## Release Docker Images
6292

6393
1. Contact `dotnet-docker` team with final version that should be released. This version should be latest version in the `nightly` branch.
94+
1. Docker image build from main branch requires assets to be published to `dotnetcli` and `dotnetclichecksums` storage accounts. See [Release to Storage Accounts](#Release-to-Storage-Accounts).
6495
1. The `dotnet-docker` team will merge from `nightly` branch to `main` branch and wait for `dotnet-monitor` team approval. Typically, these changes are completed the day before the release date.
6596
1. The `dotnet-docker` team will start the build ahead of the release and wait for the all-clear from `dotnet-monitor` team before publishing the images.
6697

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
Today we are releasing the next official preview of the `dotnet monitor` tool. This release includes:
22

3-
- Allow for pushing a message to a queue when writing to Azure egress (#163)
4-
- Allow for simplified process filter configuration (#636)
5-
- Allow `config show` command to list configuration sources (#277)
6-
3+
- Add experience survey link (#1601)
4+
- Docker: Add CBL-Mariner 2.0 amd64 image

documentation/releaseNotes/releaseNotes.template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Today we are releasing the next preview of the `dotnet monitor` tool. This release includes:
1+
Today we are releasing the next official preview of the `dotnet monitor` tool. This release includes:
22

33
- ⚠️ [Here is a breaking change we did and it's work item] (#737)
44
- [Here is a new feature we added and it's work item] (#737)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Today we are releasing the next official preview of the `dotnet monitor` tool. This release includes:
2+
3+
- Allow for pushing a message to a queue when writing to Azure egress (#163)
4+
- Allow for simplified process filter configuration (#636)
5+
- Allow `config show` command to list configuration sources (#277)
6+
- ⚠️ Docker: Tool arguments moved to CMD instruction (#1279)
7+
8+
\*⚠️ **_indicates a breaking change_**

documentation/releases.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111

1212
| Version | Latest Version | Release Date | Runtime Frameworks |
1313
|---|---|---|---|
14-
| 7.0 | [7.0.0 Preview 1](https://github.com/dotnet/dotnet-monitor/blob/main/documentation/releaseNotes/releaseNotes.v7.0.0-preview.1.22109.7.md) | February 17, 2022 | .NET 6 (with major roll forward)<br/>.NET 7 |
14+
| 7.0 | [7.0.0 Preview 2](https://github.com/dotnet/dotnet-monitor/blob/main/documentation/releaseNotes/releaseNotes.v7.0.0-preview.2.22154.3.md) | March 15th, 2022 | .NET 6 (with major roll forward)<br/>.NET 7 |

documentation/schema.json

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,9 @@
775775
],
776776
"description": "The number of times the action list may be executed before being throttled.",
777777
"format": "int32",
778-
"default": 5
778+
"default": 5,
779+
"maximum": 2147483647.0,
780+
"minimum": 1.0
779781
},
780782
"ActionCountSlidingWindowDuration": {
781783
"type": [
@@ -1014,7 +1016,9 @@
10141016
"null"
10151017
],
10161018
"description": "Buffer size used when copying data from an egress callback returning a stream to the egress callback that is provided a stream to which data is written.",
1017-
"format": "int32"
1019+
"format": "int32",
1020+
"maximum": 2147483647.0,
1021+
"minimum": 1.0
10181022
}
10191023
}
10201024
},
@@ -1044,7 +1048,9 @@
10441048
],
10451049
"description": "Amount of data points to store per metric.",
10461050
"format": "int32",
1047-
"default": 3
1051+
"default": 3,
1052+
"maximum": 2147483647.0,
1053+
"minimum": 1.0
10481054
},
10491055
"IncludeDefaultProviders": {
10501056
"type": [
@@ -1509,7 +1515,9 @@
15091515
"RequestCount": {
15101516
"type": "integer",
15111517
"description": "The threshold of the number of requests that start within the sliding window of time.",
1512-
"format": "int32"
1518+
"format": "int32",
1519+
"maximum": 2147483647.0,
1520+
"minimum": 1.0
15131521
},
15141522
"SlidingWindowDuration": {
15151523
"type": [
@@ -1552,7 +1560,9 @@
15521560
"RequestCount": {
15531561
"type": "integer",
15541562
"description": "The threshold of the number of slow requests that start within the sliding window of time.",
1555-
"format": "int32"
1563+
"format": "int32",
1564+
"maximum": 2147483647.0,
1565+
"minimum": 1.0
15561566
},
15571567
"RequestDuration": {
15581568
"type": [
@@ -1614,7 +1624,9 @@
16141624
"ResponseCount": {
16151625
"type": "integer",
16161626
"description": "The threshold number of responses with matching status codes.",
1617-
"format": "int32"
1627+
"format": "int32",
1628+
"maximum": 2147483647.0,
1629+
"minimum": 1.0
16181630
},
16191631
"SlidingWindowDuration": {
16201632
"type": [

0 commit comments

Comments
 (0)