Giter VIP home page Giter VIP logo

seq-app-htmlemail's People

Contributors

alexrussak avatar bbrandt avatar chuseman avatar dependabot[bot] avatar kodraus avatar liammclennan avatar mattmofdoom avatar nblumhardt avatar normanhh3 avatar simoncropp avatar tsimbalar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seq-app-htmlemail's Issues

Use default credentials

I'd like to see a UseDefaultCredentials setting added to Seq.App.EmailPlus and Seq.App.Replication.
This setting activates default credentials on sending email or replicate messages.
Can you add this feature? Or add me as a contributor of this repository and I will send you a pull request.

Email+ - Date formatting helpers

Emails generated with EmailPlus need some control over how dates are rendered. A helper like:

{{local_date SomeDate "yyyy"}}

or:

{{utc_date SomeDate "o"}}

would help to produce more readable date output.

Email Digest app

An email digest has been a frequently-requested app. To get the smoothest configuration experience, an entirely new app, perhaps based on EmailPlus, seems like the best way there.

SeqApp in Seq v3

Hi

I've had success in the past with Seq.Apps but I haven't been able to get my Seq Apps to work since updating to Seq v3 (the specific version I'm on is 3.3.23). To make my issue easily replicable, I cloned this repo, open sln, and replaced everything in the Seq.App.FileArchive On method with an internal log. Ie.

public void On(Event<LogEventData> evt)
{
      this.Log.Debug("log me");
}

I package it with nuget v3.4.4, install it and start an instance in my local Seq, then manually add an event, and after waiting a while I don't see any log.
Is this just something funny I'm experiencing/doing-wrong or is there an issue?

Thanks
Steve

Allow v2 File Archive and Replication apps to run on any Seq version

The implementations of certain Serilog sinks, namely file, rolling file, periodic batching and seq, are supplied by the Seq host when running a Seq app.

Because of the change in assembly layout in Serilog 2 it's not possible currently for Seq to load apps built against the Serilog 1.5 versions of these sinks.

By IL-merging or otherwise embedding the 2.0 versions of the sinks above, a single app version should again be able to run on all Seq versions.

Split this repository

It's no longer convenient to develop/maintain each of the apps in this repository together, given their different rates of evolution. The build scripts are also not geared towards multi-package projects (moving the version forwards requires editing each CSPROJ).

  • This repository should be renamed, so that inbound links land somewhere; seq-app-htmlemail/"Email+" may be the best destination for it, since the HTML email app in here has had the longest and richest development history.
  • The others would become:
    • seq-app-filearchive
    • seq-app-firstoftype
    • seq-app-thresholds
    • seq-app-replication

Getting errors when sending data

I'm getting this error in the internal HtmlEmail diagnostics log:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at HandlebarsDotNet.Collections.FixedSizeDictionary`3.AddOrReplace(TKey& key, TValue& value, EntryIndex`1& index)
   at HandlebarsDotNet.ValueProviders.ObjectIteratorValues..ctor(BindingContext bindingContext)
   at HandlebarsDotNet.Iterators.DictionaryIterator`3.Iterate(EncodedTextWriter& writer, BindingContext context, ChainSegment[] blockParamsVariables, Object input, TemplateDelegate template, TemplateDelegate ifEmpty)
   at HandlebarsDotNet.Iterators.DictionaryIterator`3.HandlebarsDotNet.Iterators.IIterator.Iterate(EncodedTextWriter& writer, BindingContext context, ChainSegment[] blockParamsVariables, Object input, TemplateDelegate template, TemplateDelegate ifEmpty)
   at HandlebarsDotNet.Compiler.Iterator.Iterate(BindingContext context, EncodedTextWriter writer, ChainSegment[] blockParamsVariables, Object target, TemplateDelegate template, TemplateDelegate ifEmpty)
   at lambda_method115(Closure , EncodedTextWriter& , BindingContext )
   at HandlebarsDotNet.Helpers.BlockHelpers.DelegateBlockHelperDescriptor.HandlebarsDotNet.Helpers.IHelperDescriptor<HandlebarsDotNet.BlockHelperOptions>.Invoke(EncodedTextWriter& output, BlockHelperOptions& options, Context& context, Arguments& arguments)
   at lambda_method116(Closure , EncodedTextWriter& , BindingContext )
   at HandlebarsDotNet.Helpers.BlockHelpers.DelegateBlockHelperDescriptor.HandlebarsDotNet.Helpers.IHelperDescriptor<HandlebarsDotNet.BlockHelperOptions>.Invoke(EncodedTextWriter& output, BlockHelperOptions& options, Context& context, Arguments& arguments)
   at lambda_method117(Closure , EncodedTextWriter& , BindingContext )
   at HandlebarsDotNet.HandlebarsEnvironment.<>c__DisplayClass15_0.<Compile>b__0(TextWriter writer, Object context, Object data)
   at HandlebarsDotNet.HandlebarsEnvironment.<>c__DisplayClass16_0.<Compile>b__0(Object context, Object data)
   at Seq.App.EmailPlus.EmailApp.FormatTemplate(HandlebarsTemplate`2 template, Event`1 evt, Host host) in C:\projects\seq-app-htmlemail\src\Seq.App.EmailPlus\EmailApp.cs:line 216
   at Seq.App.EmailPlus.EmailApp.OnAsync(Event`1 evt) in C:\projects\seq-app-htmlemail\src\Seq.App.EmailPlus\EmailApp.cs:line 141
   at SeqCli.Apps.Hosting.AppContainer.SendTypedEventAsync(String clef) in C:\projects\seqcli\src\SeqCli\Apps\Hosting\AppContainer.cs:line 113

Settings:

{
  "From": "[email protected]",
  "To": "[email protected]",
  "SubjectTemplate": "",
  "Host": "smtp.gmail.com",
  "Port": 587,
  "EnableSsl": "True",
  "BodyTemplate": "",
  "SuppressionMinutes": 5,
  "Username": "[email protected]",
  "Password": "[seq-preserve]"
}

Version: 3.1.0-dev-00179

I can send an event to the app and the email gets sent, but the automatic emails aren't sent.

In migrating to MailKit, SSL support switched from STARTTLS to implicit SSL, breaking existing configs

MailKit.Security.SslHandshakeException: An error occurred while attempting to establish an SSL or TLS connection.

When connecting to an SMTP service, port 587 is typically reserved for plain-text connections. If you intended to connect to SMTP on the SSL port, try connecting to port 465 instead.

I think we will need to switch back to (requiring) STARTTLS when the "Enable SSL" checkbox is ticked. The implementation we use will be equivalently secure in this configuration because it doesn't fall back to plain text.

In the long run, implicit SSL should be supported, too.

Email+ - substring helper

I'd like to see a substring helper added to Email+ so a part of the event message could be added to the email subject line.
Something like: {{trimString value 0 30}} to pull out the first 30 characters.

Seq.App.Replication not working on latest docker image

I can't get replication to work from one docker instance to another. Replication from our Windows VM based Seq works fine to both docker instances.

Under apps I can see a count for "events received by the app" but nothing is reaching the other docker instance.

There are no events reported as being emitted by the app. Let me know if there's any other logs/information I can provide.

File Archiver

We have our SEQ deployed in an container, can we set the file path to a cloud location for long term storage, or does the location need to be relative to the container? For instance, can in save to blob storage in azure?

Email+ [crash] Requested value 'Warn' was not found

Email+ crashes when I try to send Warning-level events. I'm using NLog, which labels the Warning event 'Warn' instead of 'Warning', which is why I assume it's crashing.

Curiously, the app does NOT throw an error for 'Info' level events, even though the Serilog version is labeled 'Information'.

As a side note, I have no idea how to restart a crashed App. My instance wouldn't send any more emails after it crashed. I had to remove the instance and create a new one, which seems kinda silly.

Here's the full stack trace:

System.ArgumentException: Requested value 'Warn' was not found.
   at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
   at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
   at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   at Serilog.Formatting.Compact.Reader.LogEventReader.ReadFromJObject(Int32 lineNumber, JObject jObject)
   at Seq.Apps.GenericHost.AppHost.<SendAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Seq.Apps.GenericHost.Program.<Main>d__0.MoveNext()

System.MissingMethodException: Method not found

Hi

Similar to this issue I'm getting the following exception when I try to load my seq app (as shown in C:\ProgramData\Seq\Logs).

System.MissingMethodException: Method not found

Is there anywhere we can see which versions of Seq and Serilog match up so that we don't receive this issue? I'm finding it hard to know when I should or shouldn't be seeing this error.

Our Seq version is Seq 3.2.16.

My SeqApp is:

  • .NET 4.5 (aside: can I use higher?)
  • Seq.Apps 3.4.17
  • Serilog 2.0.0

(I don't include these in the nuget package).

ArchiveWriterReactor performance considerations

This
https://github.com/datalust/seq-apps/blob/master/src/Seq.App.FileArchive/ArchiveWriterReactor.cs#L55
line of code leads to performance degradation due to relatively excessive memory allocations on each call to ToString() and Enum.Parse().

Consider change it from

 (Serilog.Events.LogEventLevel)Enum.Parse(typeof(Serilog.Events.LogEventLevel), evt.Data.Level.ToString())

to more explicit form

var sle = new LogEvent(
                evt.Data.LocalTimestamp,
                Convert(evt.Data.Level),
                null,
                mtp.Parse(evt.Data.MessageTemplate),
                properties);

private static Serilog.Events.LogEventLevel Convert(Apps.LogEvents.LogEventLevel level)
        {
            switch (level)
            {
                case Apps.LogEvents.LogEventLevel.Debug: return Serilog.Events.LogEventLevel.Debug;
                case Apps.LogEvents.LogEventLevel.Error: return Serilog.Events.LogEventLevel.Error;
                case Apps.LogEvents.LogEventLevel.Fatal: return Serilog.Events.LogEventLevel.Fatal;
                case Apps.LogEvents.LogEventLevel.Information: return Serilog.Events.LogEventLevel.Information;
                case Apps.LogEvents.LogEventLevel.Verbose: return Serilog.Events.LogEventLevel.Verbose;
                case Apps.LogEvents.LogEventLevel.Warning: return Serilog.Events.LogEventLevel.Warning;
                default: throw new NotSupportedException(level.ToString());
            }
        }

Also, as I can see, there is no need to call

var mtp = new MessageTemplateParser();

and then

mtp.Parse(evt.Data.MessageTemplate)

each time Event<LogEventData> evt arrived. Serilog MessageTemplate is an immutable object, and we have the same parsed message template each time the same evt.Data.MessageTemplate arrived. Since the set of all message templates is bounded (ok, if the client follows best practics - https://github.com/serilog/serilog/wiki/Writing-Log-Events) we can cache MessageTemplate object in private readonly ConcurrentDictionary<string, MessageTemplate>. This, of course, can lead to excessive growth of cache in case of not recommended usage (inclusion properties inside message) like 'user ID=123456 logged at 2017-12-02 17:39:26'. So this cached behavior may be optional and disabled by default:

 [SeqAppSetting(IsOptional = true, DisplayName = "Cache message templates")]
 public bool? EnableMessageTemplatesCache { get; set; }

EmailPlus : make EventType compatible with querystring

Currently in EmailPlus, the {{$EventType}} property uses $ + X8 format ($06EF5A34). See EmailReactor.cs#L144

It is not compatible with the url querystring format (it expects 0x06EF5A34).

The consequence is that we can't create a link which open seq filtered with all the events for this EventType.

Can we change the format of the value ? Or create another property with a correct format if backward compatibility is an issue ?

Choose time zone for "local" timestamps shown in email bodies

Good Morning,
The time listed on the email notifications is UTC, I tried copying the template and changing $UtcTimestamp to $LocalTimestamp. I tried using the server timestamp option on all ingestion inputs, this also did not work. I verified all machines have correct timezone and time set. How can i make this show correctly in the email notifications?

Support multiple Recipients

It's pretty common to want to send emails to more than 1 recipient at a time without having to create a new instance for every email address.

Typically you just separate multiple recipients with ; in the "To" section of the email.

The code change would be simply; after creating the mail message, split on ";" and looping through the splits to add the recipients to the mail message "To" collection.
https://github.com/continuousit/seq-apps/blob/master/src/Seq.App.Email/EmailReactor.cs#L89

I'll create a pull request for this later today.

Email+ The app host process is stopped

After updating some settings on our Email+ app instances, all the app processes have started to fail reporting the message The app host process is stopped.

Seq version: 5.1.3004
Email+ version: 2.0.92

The log reports the following error:
System.MissingMethodException: Method not found: 'Serilog.Events.LogEvent Serilog.Formatting.Compact.Reader.LogEventReader.ReadFromJObject(Newtonsoft.Json.Linq.JObject)'.
at Seq.Apps.GenericHost.AppHost.ReadSerilogEvent(String clef, String& eventId, UInt32& eventType)
at Seq.Apps.GenericHost.AppHost.d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Seq.Apps.GenericHost.AppHost.d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Seq.Apps.GenericHost.Program.

d__0.MoveNext()

Any idea about what could be the reason?
Thanks in advance

Email+ - Add optional CC and BCC fields

Add an optional setting to Email+ instances to set one or more CC or BCC addresses to emails with the standard Handlebars support. We currently achieve a similar effect by creating a duplicate Email+ instance with a different set of addresses, but this quickly becomes unmanageable.

MissingMethodException in latest version

I get this error when running the replication app in Seq. (3.3.12-pre)
2016-08-24 22:01:28.480 +00:00 [Information] Updated "appinstance-232" 2016-08-24 22:01:28.841 +00:00 [Error] Failed to load "Big Red Box (preprod)" System.MissingMethodException: Method not found: 'Serilog.LoggerConfiguration Serilog.SeqLoggerConfigurationExtensions.Seq(Serilog.Configuration.LoggerSinkConfiguration, System.String, Serilog.Events.LogEventLevel, Int32, System.Nullable1<System.TimeSpan>, System.String, System.String, System.Nullable1<Int64>)'. at Seq.App.Replication.Replicator.OnAttached() at Seq.Server.Features.Runner.AppHost..ctor(ILogger logger, Func2 createReactorInstance, HostedApp hostedApp, AppInstance appInstance, AppHostSettings settings)
at Seq.Server.Features.Runner.AppHost..ctor(IInternalEventPublisher publisher, HostedApp hostedApp, AppInstance appInstance, AppHostSettings settings)
at Seq.Server.Features.Runner.SandboxedAppContainer.Initialize(IInternalEventPublisher publisher, String hostedApp, String appInstance, AppHostSettings settings)
at Seq.Server.Features.Runner.SandboxedAppContainer.Initialize(IInternalEventPublisher publisher, String hostedApp, String appInstance, AppHostSettings settings)
at Seq.Server.Features.Runner.RunningApp.LoadSandboxedAppContainer(AppDomain domain, HostedApp app)
at Seq.Server.Features.Runner.RunningApp.Run()`

Support Untrusted Certificates

First of all, thanks for Seq and all its awesomeness.

We don't support secure (SSL/TLS) servers internally for sending emails. The latest version will check if TLS is available and "switch to it." But that fails because our certificates are self-signed. I realize this is a company IT problem -- but I doubt I'm the only one with this problem.

Possible Options for the plugin:

  • Could support a "Force Insecure" option -- SecureSocketOptions.None option.
  • Could support disabling SSL Verification option e.g.: jstedfast/MailKit#1227

I'm happy to implement these solutions and make a PR. But I don't want to waste time if you don't want the plugin going down this road, @nblumhardt.

For now, I'm keeping the plugin version on v3.0.0.

Thanks!

Email+ can't use Handlebarsjs Raw to prevent escaping

Hello guys,
I'm trying now to send a message with <br/> in it but it fails :(
The body template is

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">`
<head>
</head>
<body>
  \{{$Message}}
</body>
</html>

in {{$Message}} I have something like "Hello<br/>world"
The result is simply \ followed by the escaped message.

source for the syntax: https://handlebarsjs.com/expressions.html

New Signal not showing in the Signal list

I am using SEQ 5.02375, and latest version of EmailPlus. I created a new signal to capture events in the stream, and when I configure EmailPlus, it does not show this new signal.

image

image

Seq.App.Replication - Support for Active/Active

Hi there,

It would be nice to have two running instances of Seq in Active/Active mode.

We are about to deploy a big project and we choose Seq for our logs. The Seq instances will be sitting on different servers and will be accessed using a Load Balancer.

So requirement is that the two servers will be sending the logs to each other and no duplication of requests will occurred.

An easy way to do it, is to enrich the Replication Logger with a property (to mark that the specific event is because of replication process) and each Replication Logger will skip all events that where created due to replication purposes.

Anomaly Detection in Addition to Threshold?

Hi Folks,

Has anyone considered using something like this https://github.com/twitter/AnomalyDetection to do anomaly detection on an event stream?

Seems like a match made in Heaven if it weren't for the fact that the algorithm was implemented in R and either needs to be marshaled across process boundaries or converted to C#.

Anyway, I'm considering switching to Seq for monitoring on the backend and am excited by what I see you all have put together.

Properties not included in alert subject

Using: HTML Email 3.1.0-dev-00179 on Seq 2022.1

I have configured an alert:

select count(*) as count
from stream
where @Message like 'Hello%'
group by time(1m)
having count > 0
limit 100

I am sending test events with the following template: "@mt":"Hello, {User}", "User":"desmondgc"

If I specify a subject template like "Alert for {{User}} test" for the notification, the resulting email does not include the user value. Instead, the subject becomes:

Alert for  test

If I instead use one of the built-in properties like $Id or $EventType, the template is properly filled.

Isn't it possible to use custom properties for alert notification subject?

How to use handlebarsjs custom helpers with from template in Seq and Seq.App.EmailPlus

How to use handlebarsjs custom helpers with from template in Seq and Seq.App.EmailPlus? I get the following error when I try to use a handlebarsjs custom helper: HandlebarsDotNet.HandlebarsRuntimeException: Template references a helper that cannot be resolved. Helper 'formatDate'

<html>
<head>        
    <script type="text/javascript">
alert(Handlebars);
        Handlebars.registerHelper('formatDate', function(date) {
            return new Date(date).toLocaleDateString() + ' ' + new Date(date).toLocaleTimeString();
        });
    </script>
</head>
<body>    
    <divstyle="display: none;" id="entry-template">{{formatDate "2019-01-01"}}</div>  
    <div id="placeholder"></div>        
</body>
</html>

I keep getting an error on Email+

I am using EmailPlus app in Seq, but when I try to log an error, I keep getting this error. Looks like a problem with template. Any ideas?
The event event-c5b937eff46308d20b00000000000000 could not be sent to Email Errors.

AppId
hostedapp-5
AppInstanceId
appinstance-12

AppInstanceTitle
Email Errors

EventId
event-c5b937eff46308d20b00000000000000
System.NullReferenceException: Object reference not set to an instance of an object.
at Seq.App.EmailPlus.EmailReactor.FormatTemplate(Func2 template, Event1 evt, Host host)
at Seq.App.EmailPlus.EmailReactor.On(Event1 evt) at Seq.Server.Features.Runner.AppHost.SendLogEventData(ISubscribeTo1 reactor, DateTime utcTimestamp, Int64 arrivalOrder, UInt32 hash, String document)
at Seq.Server.Features.Runner.AppHost.Send(StorageEvent storageEvent)

Question: Can a Seq App modify an API key specific filter?

Here is my scenario:

Version A of software is released, an exception starts cropping up in, it is going to be 2 weeks to fix the issue, I want to silence the noise until that issue can be addressed. I would love to be able to send that exception entry and using the hash of the event silence further events that are associated to that specific version of the software. We deploy version B of the software, and now if that same exception pops up, the filter won't find it because the filter was created for the previous event's "signature".

The key thing I need to know, is there a way that I can modify the filter that is associated to incoming events for a specific API key via a Seq App?

If so, I really have all I need to implement this app.

Ideally it would be great if the app would clean up those filters that are now "out-of-date". Are there maintenance hooks that Seq Apps can hook into?

Thanks for any pointers and feedback!

Include Last Log Event and Parameters with Threshold Breached Event

I feel that this would make the notifications produced by a signal of threshold events a bit more useful.

Would we need to put the parsed text of the original event into a parameter of the threshold event to avoid changing the threshold event message text?

Will any of the planned features for Aggregate Queries in Seq make the Threshold app obsolete? The part I'm most unsure of is if Aggregate Queries will be able to feed signals that could then become notifications.

Enumerating event properties in Seq.App.Email doesn't seem to work

I'm running Seq v3.3.23 with Seq.App.Email v2.0.44 and followed the instructions in the docs to display a list of properties and values in the Properties bag and it doesn't get rendered in the e-mail.

<ul>
  {{#each $Properties}}
  <li>{{@key}} is {{pretty this}}</li>
  {{/each}}
</u>

I tried {{$Properties}}, {{@Properties}}, and {{Properties}} just to be sure, and none worked. The code above is displayed as is in the e-mail body, instead of it being rendered.

Email+ does not have Base Seq Url property

We get all emails fromt he app with localhost event url. Another apps like Slack notification app, have the Seq base url setting, which works great. Suggestion is to implement the same in Email+.

Retry Sends?

We now and again get a send issue from the app like this:

System.Net.Mail.SmtpException: Error in processing. The server response was: 4.3.111 Temporary server error. Please try again later MRH1 [Hostname=GVXP192MB1782.EURP192.PROD.OUTLOOK.COM]
at System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Seq.App.EmailPlus.EmailApp.On(Event`1 evt) in C:\projects\seq-apps\src\Seq.App.EmailPlus\EmailApp.cs:line 145
at SeqCli.Apps.Hosting.AppContainer.SendTypedEventAsync(String clef) in C:\projects\seqcli\src\SeqCli\Apps\Hosting\AppContainer.cs:line 132

Would it be possible to have it retry on a backoff? (for example using Polly)

"View in Seq" Email Links Broken

"View in Seq" links in emails do not work.

Id string value is missing the quotes:
@Id==event-c097a9fd161908d348162a0000000000
Should be:
@Id=="event-c097a9fd161908d348162a0000000000"

Index out of bounds with high frequency of events

We use Serilog and Seq server for sentralized logging of a number of applications. From Seq, we forward errors (via a signal) to a channel in Slack. We want to build on this by using the Threshold app to further filter what we send to our Slack channel. However, when I tested this app in our test environment, I keep getting IndexOutOfRangeException with the following stack trace:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Seq.App.Thresholds.ThresholdReactor.On(Event`1 evt) in c:\projects\seq-apps\src\Seq.App.Thresholds\ThresholdReactor.cs:line 79
   at Seq.Server.Features.Runner.AppHost.SendLogEventData(ISubscribeTo`1 reactor, DateTime utcTimestamp, Int64 arrivalOrder, UInt32 hash, String document)
   at Seq.Server.Features.Runner.AppHost.Send(StorageEvent storageEvent)

The error in Seq is: The event event-d4a1341f6d0108d3d2d8a90500000000 could not be sent to Test_Threshold

The signal I am testing it with spams our logging server with a lot of messages per minute, so I wonder if this may be an issue related to the capacity of the app. Does the Threshold app have a limit regarding how many events it can process per minute?

Seq.App.EmailPlus $ServerUri variable shows as localhost

Hi all,

I am using the Seq.App.EmailPlus app (fantastic by the way, thanks!)

We have multiple Seq environments (eg. http://server1:5341 and http://server2:5341).

However, every e-mail that comes from each of those environments uses a link of http://localhost:5341, which doesn't allow us to actually link to the events.

It appears as though $ServerUri in DefaultBodyTemplate.html is set to localhost and I can't see a way to change it.

Is there a place to set this variable within the Seq config that I'm not seeing?

Please advise. Thanks!

Feature Request: Email Plus SMTP Configuration

First of all, just want to say that Seq has been an absolutely incredible product to work with all around. It's made life incredibly easy on us.

On our current server, we use SMTP with the SmtpClient.SmtpDeliveryMethod set to SpecifiedPickupDirectory. I thought a possible enhancement would include the ability to configure Email Plus in a similar matter, for circumstances like ours (rare as it might be.)

I'd be happy to dive in and do a PR for it, this would be my first foray into something of this nature and I might need a little help to get the proper tests in place.

Thanks for an awesome product!

Seq.App.Email with SSL

Hi,

I was trying to add the App "Seq.App.Email" to my Seq using the http://localhost:5341/#/settings/apps with the package from nuget.

When I try it with my login information the app throw "The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first.", on what I know it's because I need to enabled SSL before send the email.

So I download the source code and add "client.EnableSsl = true;" before sending the message.

After that I fallow the instruction to package on https://getseq.atlassian.net/wiki/display/SEQ10/Writing+Seq+apps and http://docs.nuget.org/docs/creating-packages/Creating-and-Publishing-a-Package to create the package using nuget.exe.

When i go to http://localhost:5341/#/settings/apps/new (to insert a manual app in Seq) I use those settings:

Name : EmailSSL
Description : Email with SSL
Main reactor type : Seq.App.Email
Available settings : From, To, SubjectTemplate, Host, Port, BodyTemplate, IsBodyHtml, Username, Password,
Add setting : Seq.App.Email.0.1.0.nupkg
Allow the app to process events it creates (uncheck)

But Seq Throw and exception "An unhandled error occurred while serving the request."
In the log it's :
"2014-05-30 16:14:07.286 -04:00 [Error] Error serving "http://localhost:5341/api/apps"
System.ArgumentNullException: Value cannot be null.
Parameter name: value
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at Seq.Server.Web.Api.Apps.AppsModule.b__1a(AppSettingPart s) in c:\TeamCity\buildAgent\work\9b28c0a5c864e317\src\Seq.Server\Server\Web\Api\Apps\AppsModule.cs:line 109
at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Seq.Server.Web.Api.Apps.AppsModule.ToExistingDocument(AppEntity entity, HostedApp document) in c:\TeamCity\buildAgent\work\9b28c0a5c864e317\src\Seq.Server\Server\Web\Api\Apps\AppsModule.cs:line 108
at Seq.Server.Web.Api.Apps.AppsModule.ToNewDocument(AppEntity entity) in c:\TeamCity\buildAgent\work\9b28c0a5c864e317\src\Seq.Server\Server\Web\Api\Apps\AppsModule.cs:line 102
at Seq.Server.Web.EntityResourceModule2.Create() in c:\TeamCity\buildAgent\work\9b28c0a5c864e317\src\Seq.Server\Server\Web\EntityResourceModule.cs:line 74 at Seq.Server.Web.ResourceModule.<.ctor>b__19(Object _) in c:\TeamCity\buildAgent\work\9b28c0a5c864e317\src\Seq.Server\Server\Web\ResourceModule.cs:line 18 at CallSite.Target(Closure , CallSite , Func2 , Object )
at Nancy.Routing.Route.<>c__DisplayClass4.b__3(Object parameters, CancellationToken context)"

I'm not sure if I miss something or don't do the right thing

Thank you and have a nice weekend/week.

Jo

The new default template does not render properly in Outlook 2013

As of Seq v4.0.60 with Email+ v2.0.60 , using the "default" template, the emails I get do not look like what they should in Outlook 2013.

Expected something like : https://blog.getseq.net/content/images/2017/05/Alerts-Email.png (from blog post at https://blog.getseq.net/hello-seq-4-0-dashboards-alerts-more-improvements/) ...

But I get :

image

i.e. the header seems to be missing.

When I open the source in a browser, it does seem to display well :
image

Default body template including semicolon after named property in rendered message

I'm not sure why, but the {{$Message}} that is rendered in the email body is including a semicolon after the second named property from the Health Check input, even though that semicolon is not in the event payload in Seq. When our operations team receives the error email, they go to click the link, but it always fails because our email client is treating the double quote as part of the URL because it sees the semicolon (that shouldn't be there) after it.

2021-11-15 10_15_02- Error _Health_check_GET_httployaltyweb corp

There's no semicolon in the JSON in Seq

2021-11-15 10_16_40- Error _Health_check_GET_httployaltyweb corp

Seq.App.Email not obeying filter.

We have a filter on seq that has 36 items against it for filtering out products that we are dealing with and don't want reported on in email - unfortunately the email plugin seems to be ignoring some of these and forwarding the events on in email even though they don't show in the seq dashboard.

Is there a limit to how many events it ignores for email purpose?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.