Beispiel #1
0
        private IEnumerable <ResponseMessage> ApplicationDetailHandler(IncomingMessage incomingMessage, IValidHandle matchedHandle)
        {
            yield return(incomingMessage.IndicateTypingOnChannel());

            if (NewRelicPlugin.ApplicationDetailTargetedCommandMisformed(incomingMessage.TargetedText))
            {
                yield return(incomingMessage.ReplyToChannel($"NewRelic application detail command was not formatted correctly. Help: {this.applicationDetailHelpText}"));

                yield break;
            }

            var applicationName        = this.newRelicPlugin.GetApplicationNameFromTargetedText(incomingMessage.TargetedText);
            var applicationAttachments = this.newRelicPlugin.GetApplicationDetailsFiltered(applicationName);

            if (!applicationAttachments.Any())
            {
                yield return(incomingMessage.ReplyToChannel(
                                 $"No applications were found in NewRelic with the name `{applicationName}`"));
            }
            else
            {
                foreach (var responseMessage in ChuckAttachmentsAndReplyToChannel(
                             incomingMessage,
                             applicationAttachments,
                             $"There were {applicationAttachments.Count} application(s) found for that name. They are:"))
                {
                    yield return(responseMessage);
                }
            }
        }
Beispiel #2
0
 public NewRelicMiddleware(IMiddleware next, NewRelicPlugin newRelicPlugin, ILog log)
     : base(next)
 {
     this.newRelicPlugin  = newRelicPlugin;
     this.HandlerMappings = new[]
     {
         new HandlerMapping
         {
             ValidHandles  = ExactMatchHandle.For($"{Configuration.CommandPrefix} applications"),
             EvaluatorFunc = this.ApplicationsHandler,
             Description   = $"Gets applications summary from NewRelic. '{Configuration.CommandPrefix} applications'",
             VisibleInHelp = true
         },
         new HandlerMapping
         {
             ValidHandles  = ExactMatchHandle.For($"{Configuration.CommandPrefix} applications detail"),
             EvaluatorFunc = this.ApplicationsDetailHandler,
             Description   = $"Gets applications detail from NewRelic. {Configuration.CommandPrefix} applications detail",
             VisibleInHelp = true
         },
         new HandlerMapping
         {
             ValidHandles  = ExactMatchHandle.For($"{Configuration.CommandPrefix} applications detail unhealthy"),
             EvaluatorFunc = this.UnhealthyApplicationsDetailHandler,
             Description   = $"Gets applications detail from NewRelic which are unhealthy. `applications detail unhealthy`",
             VisibleInHelp = true
         },
         new HandlerMapping
         {
             ValidHandles  = StartsWithHandle.For($"{Configuration.CommandPrefix} application detail"),
             EvaluatorFunc = this.ApplicationDetailHandler,
             Description   = $"Gets application detail for one or more applications from NewRelic. {this.applicationDetailHelpText}",
             VisibleInHelp = true
         },
         new HandlerMapping
         {
             ValidHandles  = StartsWithHandle.For($"{Configuration.CommandPrefix} application metrics"),
             EvaluatorFunc = this.ApplicationMetricsHandler,
             Description   = $"Gets application metrics from NewRelic for the requested application id. {this.applicationMetricsHelpText}",
             VisibleInHelp = false
         },
     };
 }