Merge pull request #10016 from prometheus/release-2.32

Merge back release 2.32
This commit is contained in:
Julien Pivotto 2021-12-14 20:58:58 +01:00 committed by GitHub
commit db1551bd21
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 37 additions and 35 deletions

View file

@ -1,18 +1,6 @@
## 2.32.0-rc.0 / 2021-12-01 ## 2.32.0 / 2021-12-09
This list of changes is relative to [v2.32.0-beta.0](https://github.com/prometheus/prometheus/releases/tag/v2.32.0-beta.0), which was a special 2.32 beta release to pre-publish the Prometheus Agent features. This release introduces the Prometheus Agent, a new mode of operation for
* [FEATURE] TSDB: Add support for forwarding exemplars in Agent mode. #9664
* [FEATURE] UI: Adapt web UI for Prometheus Agent mode. #9851
* [ENHANCEMENT] Linode SD: Tune API request page sizes. #9779
* [BUGFIX] TSDB: Fix panic when checkpoint directory is empty. #9687
* [BUGFIX] TSDB: Fix panic, out of order chunks, and race warning during WAL replay. #9856
* [BUGFIX] UI: Correctly render links for targets with IPv6 addresses that contain a Zone ID. #9853
* [BUGFIX] Promtool: Fix checking of `authorization.credentials_file` and `bearer_token_file` fields. #9883
## 2.32.0-beta.0 / 2021-11-16
This beta release introduces the Prometheus Agent, a new mode of operation for
Prometheus optimized for remote-write only scenarios. In this mode, Prometheus Prometheus optimized for remote-write only scenarios. In this mode, Prometheus
does not generate blocks on the local filesystem and is not queryable locally. does not generate blocks on the local filesystem and is not queryable locally.
Enable with `--enable-feature=agent`. Enable with `--enable-feature=agent`.
@ -20,7 +8,7 @@ Enable with `--enable-feature=agent`.
Learn more about the Prometheus Agent in our [blog post](https://prometheus.io/blog/2021/11/16/agent/). Learn more about the Prometheus Agent in our [blog post](https://prometheus.io/blog/2021/11/16/agent/).
* [CHANGE] remote-write: Change default max retry time from 100ms to 5 seconds. #9634 * [CHANGE] remote-write: Change default max retry time from 100ms to 5 seconds. #9634
* [FEATURE] Agent: New mode of operation optimized for remote-write only scenarios, without local storage. Enable with `--enable-feature=agent`. #8785 * [FEATURE] Agent: New mode of operation optimized for remote-write only scenarios, without local storage. Enable with `--enable-feature=agent`. #8785 #9851 #9664 #9939 #9941 #9943
* [FEATURE] Promtool: Add `promtool check service-discovery` command. #8970 * [FEATURE] Promtool: Add `promtool check service-discovery` command. #8970
* [FEATURE] UI: Add search in metrics dropdown. #9629 * [FEATURE] UI: Add search in metrics dropdown. #9629
* [FEATURE] Templates: Add parseDuration to template functions. #8817 * [FEATURE] Templates: Add parseDuration to template functions. #8817
@ -32,8 +20,15 @@ Learn more about the Prometheus Agent in our [blog post](https://prometheus.io/b
* [ENHANCEMENT] TSDB: Optimize query by skipping unneeded sorting in TSDB. #9673 * [ENHANCEMENT] TSDB: Optimize query by skipping unneeded sorting in TSDB. #9673
* [ENHANCEMENT] Templates: Support int and uint as datatypes for template formatting. #9680 * [ENHANCEMENT] Templates: Support int and uint as datatypes for template formatting. #9680
* [ENHANCEMENT] UI: Prefer `rate` over `rad`, `delta` over `deg`, and `count` over `cos` in autocomplete. #9688 * [ENHANCEMENT] UI: Prefer `rate` over `rad`, `delta` over `deg`, and `count` over `cos` in autocomplete. #9688
* [ENHANCEMENT] Linode SD: Tune API request page sizes. #9779
* [BUGFIX] TSDB: Add more size checks when writing individual sections in the index. #9710 * [BUGFIX] TSDB: Add more size checks when writing individual sections in the index. #9710
* [BUGFIX] PromQL: Make `deriv()` return zero values for constant series. #9728 * [BUGFIX] PromQL: Make `deriv()` return zero values for constant series. #9728
* [BUGFIX] TSDB: Fix panic when checkpoint directory is empty. #9687
* [BUGFIX] TSDB: Fix panic, out of order chunks, and race warning during WAL replay. #9856
* [BUGFIX] UI: Correctly render links for targets with IPv6 addresses that contain a Zone ID. #9853
* [BUGFIX] Promtool: Fix checking of `authorization.credentials_file` and `bearer_token_file` fields. #9883
* [BUGFIX] Uyuni SD: Fix null pointer exception during initialization. #9924 #9950
* [BUGFIX] TSDB: Fix queries after a failed snapshot replay. #9980
## 2.31.1 / 2021-11-05 ## 2.31.1 / 2021-11-05

View file

@ -1 +1 @@
2.32.0-rc.0 2.32.0

View file

@ -381,7 +381,7 @@ func main() {
serverOnlyFlag(a, "query.max-samples", "Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than this into memory, so this also limits the number of samples a query can return."). serverOnlyFlag(a, "query.max-samples", "Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than this into memory, so this also limits the number of samples a query can return.").
Default("50000000").IntVar(&cfg.queryMaxSamples) Default("50000000").IntVar(&cfg.queryMaxSamples)
a.Flag("enable-feature", "Comma separated feature names to enable. Valid options: exemplar-storage, expand-external-labels, memory-snapshot-on-shutdown, promql-at-modifier, promql-negative-offset, remote-write-receiver, extra-scrape-metrics, new-service-discovery-manager. See https://prometheus.io/docs/prometheus/latest/feature_flags/ for more details."). a.Flag("enable-feature", "Comma separated feature names to enable. Valid options: agent, exemplar-storage, expand-external-labels, memory-snapshot-on-shutdown, promql-at-modifier, promql-negative-offset, remote-write-receiver, extra-scrape-metrics, new-service-discovery-manager. See https://prometheus.io/docs/prometheus/latest/feature_flags/ for more details.").
Default("").StringsVar(&cfg.featureList) Default("").StringsVar(&cfg.featureList)
promlogflag.AddFlags(a, &cfg.promlogConfig) promlogflag.AddFlags(a, &cfg.promlogConfig)

View file

@ -103,7 +103,7 @@ const App: FC<AppProps> = ({ consolesLink, agentMode }) => {
<ServiceDiscoveryPage /> <ServiceDiscoveryPage />
</Route> </Route>
<Route path="/status"> <Route path="/status">
<StatusPage /> <StatusPage agentMode={agentMode} />
</Route> </Route>
<Route path="/tsdb-status"> <Route path="/tsdb-status">
<TSDBStatusPage /> <TSDBStatusPage />

View file

@ -6,7 +6,7 @@ const Agent: FC = () => {
<h2>Prometheus Agent</h2> <h2>Prometheus Agent</h2>
<p> <p>
This Prometheus instance is running in <strong>agent mode</strong>. In this mode, Prometheus is only used to scrape This Prometheus instance is running in <strong>agent mode</strong>. In this mode, Prometheus is only used to scrape
discovered targets and forward them to remote write endpoints. discovered targets and forward the scraped metrics to remote write endpoints.
</p> </p>
<p>Some features are not available in this mode, such as querying and alerting.</p> <p>Some features are not available in this mode, such as querying and alerting.</p>
</> </>

View file

@ -83,28 +83,35 @@ const StatusWithStatusIndicator = withStatusIndicator(StatusContent);
StatusContent.displayName = 'Status'; StatusContent.displayName = 'Status';
const Status: FC = () => { const StatusResult: FC<{ fetchPath: string; title: string }> = ({ fetchPath, title }) => {
const { response, isLoading, error } = useFetch(fetchPath);
return (
<StatusWithStatusIndicator
key={title}
data={response.data}
title={title}
isLoading={isLoading}
error={error}
componentTitle={title}
/>
);
};
const Status: FC<{ agentMode: boolean }> = ({ agentMode }) => {
const pathPrefix = usePathPrefix(); const pathPrefix = usePathPrefix();
const path = `${pathPrefix}/${API_PATH}`; const path = `${pathPrefix}/${API_PATH}`;
return ( return (
<> <>
{[ {[
{ fetchResult: useFetch<Record<string, string>>(`${path}/status/runtimeinfo`), title: 'Runtime Information' }, { fetchPath: `${path}/status/runtimeinfo`, title: 'Runtime Information' },
{ fetchResult: useFetch<Record<string, string>>(`${path}/status/buildinfo`), title: 'Build Information' }, { fetchPath: `${path}/status/buildinfo`, title: 'Build Information' },
{ fetchResult: useFetch<Record<string, string>>(`${path}/alertmanagers`), title: 'Alertmanagers' }, { fetchPath: `${path}/alertmanagers`, title: 'Alertmanagers' },
].map(({ fetchResult, title }) => { ].map(({ fetchPath, title }) => {
const { response, isLoading, error } = fetchResult; if (agentMode && title === 'Alertmanagers') {
return ( return null;
<StatusWithStatusIndicator }
key={title} return <StatusResult fetchPath={fetchPath} title={title} />;
data={response.data}
title={title}
isLoading={isLoading}
error={error}
componentTitle={title}
/>
);
})} })}
</> </>
); );