Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ci.global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "10.0.201"
"version": "10.0.203"
}
}
2 changes: 1 addition & 1 deletion src/Roastery/Roastery.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="SerilogTracing" Version="2.3.1" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Api/ApiConstants.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A number of added files copied headers with incorrect copyright years. I've ripped the bandaid off and updated all of them so we stop propagating this mistake.

// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Api/SeqConnectionFactory.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/AppLoader.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppDefinitionFormatter.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppMetadataReader.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppPlatformDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingType.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingValue.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/AppActivator.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/AppHost.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/EventFormat.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Command.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandFeature.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandLineHost.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandMetadata.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/CreateCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/App/DefineCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/App/RunCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Config/LegacyCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018-2021 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Dashboard/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Dashboard/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
4 changes: 2 additions & 2 deletions src/SeqCli/Cli/Commands/Dashboard/RenderCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -181,7 +181,7 @@ static string BuildSqlQuery(ChartQueryPart query, DateTime rangeStart, DateTime
foreach (var measurement in query.Measurements)
sql.Select(measurement.Value, measurement.Label);

sql.FromStream = true;
sql.From = query.DataSource.ToString().ToLowerInvariant();
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because DataSource is a value type (enum), this will fall back to Stream by default for older API versions that don't supply a data source explicitly (these only support stream anyway).


sql.Where($"@Timestamp >= DateTime('{rangeStart:O}')");
sql.Where($"@Timestamp < DateTime('{rangeEnd:O}')");
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Events/DeleteCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2026 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ExpressionIndex/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/CreateCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
1 change: 0 additions & 1 deletion src/SeqCli/Cli/Commands/Forwarder/InstallCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.AccessControl;
using System.Threading.Tasks;
using SeqCli.Cli.Features;
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/HelpCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Index/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Index/SuppressCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/IngestCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/LogCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/PrintCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/QueryCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
62 changes: 49 additions & 13 deletions src/SeqCli/Cli/Commands/RetentionPolicy/CreateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

using System;
using System.Threading.Tasks;
using Seq.Api.Model.Shared;
using Seq.Api.Model.Signals;
using SeqCli.Api;
using SeqCli.Cli.Features;
Expand All @@ -26,15 +27,16 @@
namespace SeqCli.Cli.Commands.RetentionPolicy;

[Command("retention", "create", "Create a retention policy",
Example = "seqcli retention create --after 30d --delete-all-events")]
Example = "seqcli retention create --after 30d --data-source stream --delete-all")]
class CreateCommand : Command
{
readonly ConnectionFeature _connection;
readonly OutputFormatFeature _output;
readonly StoragePathFeature _storagePath;

string? _afterDuration;
bool _deleteAllEvents;
bool _deleteAll;
string? _dataSource;
string? _deleteMatchingSignal;

public CreateCommand()
Expand All @@ -43,21 +45,36 @@ public CreateCommand()
"after=",
"A duration after which the policy will delete events, e.g. `7d`",
v => _afterDuration = ArgumentString.Normalize(v));

Options.Add(
"delete-all-events",
"The policy should delete all events (currently the only supported option)",
_ => _deleteAllEvents = true);
"data-source=",
"The data source to delete records from (`stream` for log events and traces, or `series` for metrics); defaults to `stream`",
v => _dataSource = ArgumentString.Normalize(v));

Options.Add(
"delete-all",
"The policy should delete all records in the target data source after the specified duration",
_ => _deleteAll = true);

Options.Add(
"delete=",
"Stream incoming events to this app instance as they're ingested; optionally accepts a signal expression limiting which events should be streamed",
"A signal expression identifying events that should be deleted; not supported by the `series` data source",
s =>
{
_deleteMatchingSignal = s;
}
);


// Maintained for compatibility in Seq 2026.x; intended to be retired in 2027.
Options.Add(
"delete-all-events",
"The policy should delete all events from `stream`",
_ =>
{
_deleteAll = true;
_dataSource = null;
}, hidden: true);

_connection = Enable<ConnectionFeature>();
_output = Enable<OutputFormatFeature>();
_storagePath = Enable<StoragePathFeature>();
Expand All @@ -71,19 +88,19 @@ protected override async Task<int> Run()
SignalExpressionPart? removedSignalExpression;

// Exactly one of `delete-all-events` or `delete` must be specified
if (_deleteAllEvents)
if (_deleteAll)
{
if (!string.IsNullOrEmpty(_deleteMatchingSignal))
{
Log.Error("Only one of the `delete-all-events` or `delete` options may be specified");
Log.Error("Only one of the `--delete-all` or `--delete` options may be specified");
return 1;
}

removedSignalExpression = null;
}
else if (string.IsNullOrEmpty(_deleteMatchingSignal))
{
Log.Error("Either the `delete-all-events` or `delete` options must be specified");
Log.Error("One of either the `--delete-all` or `--delete` options must be specified");
return 1;
}
else
Expand All @@ -93,15 +110,34 @@ protected override async Task<int> Run()

if (_afterDuration == null)
{
Log.Error("A duration must be specified using `after`");
Log.Error("A duration must be specified using `--after`");
return 1;
}

var duration = DurationMoniker.ToTimeSpan(_afterDuration);


if (_dataSource == null)
{
Log.Error("Use `--data-source` to specify `stream` or `series` as the retention target");
return 1;
}

if (!Enum.TryParse(_dataSource, ignoreCase: true, out DataSource dataSource))
{
Log.Error("The `--data-source` option supports `stream` and `series`");
return 1;
}

if (removedSignalExpression != null && dataSource != DataSource.Stream)
{
Log.Error("The `--delete` option is only valid when `--data-source` is `stream`");
return 1;
}

var policy = await connection.RetentionPolicies.TemplateAsync();
policy.RetentionTime = duration;
policy.RemovedSignalExpression = removedSignalExpression;
policy.DataSource = dataSource;

policy = await connection.RetentionPolicies.AddAsync(policy);

Expand Down
Loading
Loading