Unai Emery reveals Holding suffered serious injury

first_imgArsenal manager Unai Emery has revealed that Rob Holding suffered a serious knee injury during the team’s draw with Manchester United.The Gunners played a 2-2 draw with United at Old Trafford on Wednesday night but Holding was stretchered off nine minutes from the interval after a coming together with Marcus Rashford.But Emery, who revealed the extent of Holding’s injury, had better news for Arsenal fans, when he said Aaron Ramsey didn’t suffer a similar fate.He said, according to Sky Sports:Jadon SanchoMerson believes Arsenal should sign Sancho Manuel R. Medina – September 14, 2019 Borussia Dortmund winger Jadon Sancho might be the perfect player to play for the Gunners, according to former England international Paul Merson.“It’s the worst news for us today. We are going to wait for the doctor but maybe it’s a big injury with his knee.”“Aaron Ramsey is a small injury but after these two injuries, every player responded with good commitment and good mentality to keep in the difficult moments our performance in the game.”Holding appeared in 16 games for Arsenal in all competitions this season with captain and first choice centre-back Laurent Koscielny still out with an injury.The Gunners continue their 20 games unbeaten following their draw at Old Trafford but slipped to fifth on the Premier League table.last_img read more

2 minor girls raped in 2 districts

first_imgProthom Alo illustrationTwo minor girls have reportedly been raped in Jashore and Netrakona districts as sexual perversion has become an order of the day in this society, reports UNB.In Jashore, a five-year-old girl was violated allegedly by the friend of her father at Altapol village in Keshabpur upazila on Sunday.Police detained the accused, Nazrul Islam, 35, son of late Insar Ali of Bherchi village in the upazila.Quoting victim’s father, police said Nazrul came to their house on Sunday morning.At one stage, he took the minor girl to a nearby fish enclosure and violated her there.Hearing the victim’s screams, locals rushed in, caught Nazrul red-handed and gave him a good beating before handing him over to police, said Mohammad Shahin, officer-in-charge of Keshabpur police station.The girl is now undergoing treatment at Khulna Medical College Hospital.A case was filed with Keshabpur police station in this regard.In Netrakona, a teenage girl was violated by a neighbour at Dhanshira village in Durgapur upazila on Saturday.Mizanur Rahman, officer-in-charge of Durgapur police station, said the victim who used to work as a domestic help in the capital returned home recently.Saiqul Islam, 21, son of Dulal Mia of the village, stormed their house on Saturday noon and violated the girl when she was alone.Later, the mother of the victim filed a case in this regard.The victim was sent to Netrakona Modern Sadar Hospital, the OC said, adding that they were trying to arrest the accused.last_img read more

Attorney Generals Selective Silence Deafens Senate Russia Inquiry

first_imgBrendan Smialowski/AFP/Getty ImagesAttorney General Jeff Sessions testifies during a Senate Intelligence Committee hearing on Capitol Hill on Tuesday.Jeff Sessions did exactly what he needed to do Tuesday — help himself in the eyes of his boss, President Trump, and, in turn, help Trump.But the attorney general, an early Trump supporter, revealed little in the congressional hearing about the ongoing Russia saga or Trump’s role in possibly trying to quash the investigation looking into it.Using vague legal justification, Sessions shut down potentially important lines of investigative questioning — and that may be exactly how the White House wants it.Sessions showed flashes of anger rarely seen from the 70-year-old Alabamian, calling any suggestion that he colluded with Russia to interfere in the U.S. presidential election a “detestable lie.”The tactic — combined with the earlier testimony of high-ranking Trump administration officials, who also deemed it inappropriate to divulge conversations with the president — may have given a road map for the White House to keep its secrets without the public-relations blowback of invoking executive privilege.Sessions wanted this open hearing before the Senate Intelligence Committee so he could respond to fired FBI Director James Comey. Comey — a man whom, it was revealed Tuesday, Sessions wanted gone before Day 1 — intimated in testimony last week that Sessions’ potential conflicts went deeper than were originally known.Sessions denied all of it and shielded his boss from any potential damage.Silence is golden?It became obvious from the get-go Tuesday that Sessions would not disclose conversations between himself and the president. That cut off lines of inquiry about the exact circumstances surrounding Comey’s firing, what may have happened in the Feb. 14 Oval Office meeting in which Sessions was asked to leave so Trump could speak one-on-one with Comey, as well as Trump’s reaction to Sessions’ recusal.Sessions’ legal rationale for his silence was muddled, at best, and deliberate interference at worst, something Democrats accused him of.“My understanding is that you took an oath,” said New Mexico Democrat Martin Heinrich in some of the sharpest questioning of the day. “You raised your right hand here today, and you said that you would solemnly tell the truth, the whole truth and nothing but the truth. And now you’re not answering questions. You’re impeding this investigation.”Sen. Ron Wyden of Oregon was even more blunt. “I believe the American people have had it with stonewalling,” he said.Sessions shot back: “I am not stonewalling. I am following the historic policies of the Department of Justice. You don’t walk into hearing or committee meeting and reveal confidential communications with the president of the United States, who is entitled to receive conventional communications in your best judgment about a host of issues, and have to be accused of stonewalling them.”Sessions did not invoke “executive privilege.” As he acknowledged to Heinrich, “I’m not able to invoke executive privilege. That’s the president’s prerogative.”And yet, he told Sen. Joe Manchin, D-W.Va., who asked if Sessions could “speak more frankly” in a closed session with senators, as Comey did: “I’m not sure. The executive privilege is not waived by going in camera or in closed session.”Sessions repeatedly clung to vague reasoning for not answering many of the senators’ questions. He could not point to specific Justice Department language, even though Sessions said he had consulted with department attorneys before the hearing.Senators got just five minutes each to ask questions (the chairman and vice chairman got 10). When Sen. Kamala Harris, D-Calif., asked about Sessions’ recollection of meetings with Russian officials or businessmen, he complained, “I’m not able to be rushed this fast. It makes me nervous.”When Republican Chairman Richard Burr of North Carolina interjected and noted that “the senator’s time has expired,” a wide grin swept across Sessions’ face, as he looked up at the chairman and former colleague.Round and round it went. And all of it probably made Sessions’ boss very happy.“He thought that Attorney General Sessions did a very good job,” White House deputy press secretary Sarah Huckabee Sanders told reporters, including NPR’s Tamara Keith, traveling on Air Force One on Tuesday night. She added that Sessions “in particular was very strong on the point that there was no collusion between Russia and the Trump campaign.”Can’t recallSessions’ silence kept a lid on important details that could have illuminated much more of the Russia story. He said he couldn’t “recall” 18 times. It reminded Washington of another attorney general who testified 10 years ago, Attorney General Alberto Gonzales. Gonzales said that he couldn’t “recall” some 60 times in a hearing about the dismissal of federal prosecutors, accusations of coordination with the White House and overall Justice Department leadership.Ironically, Sessions was one of the senators questioning Gonzales that day and expressed frustration with Gonzales’ faulty memory.“Well, I guess I’m concerned about your recollection, really, because it’s not that long ago,” Sessions said. “It was an important issue. And that’s troubling to me, I’ve got to tell you.”Other attorneys general, of course, have evaded congressional questions. Eric Holder, President Barack Obama’s attorney general, was held in contempt of Congress for invoking executive privilege and not turning over documents related to the “Fast and Furious” investigation.But if questions coming into Tuesday’s hearing were, “How would Sessions respond to fired FBI Director James Comey’s intimation that there was something else — something classified — about Sessions to be concerned about?” or “What more do we know about President Trump’s role in firing Comey or putting pressure on officials to drop the Russia investigation?” there wasn’t much light shed on them.Having it in for Comey from the beginningWhat was learned, though, was that Sessions and Rod Rosenstein, now deputy attorney general, may have always been looking for a reason to fire Comey — and so was Trump.Sessions revealed that he and Rosenstein discussed before they were even confirmed getting rid of Comey. They wanted a “fresh start,” Sessions said.But Comey was kept on for months after they were both confirmed. And, like Trump, Sessions didn’t exactly criticize Comey’s handling of the Hillary Clinton email investigation during the presidential campaign. When Comey came forward saying he was reopening the investigation in October of last year, Sessions praised him.“Now, he’s received new evidence,” Sessions said on Fox Business. “He had an absolute duty, in my opinion, 11 days or not, to come forward with the new information that he has and let the American people know that, too.”He added that Comey, after being uncomfortable with the airplane meeting between former Attorney General Loretta Lynch and former President Bill Clinton, had “stepped up and done what his duty is, I think.”Sessions was critical of the investigation, but seemingly only because it didn’t “get to the bottom” of what happened.“I think it should have used a grand jury,” he said. Sessions wanted people put under oath. “So you have to grill them, and people will surprise you how sometimes they’ll just spill the beans when they’re under oath like that.” He then pointed out that with the “new evidence,” Sessions thought the investigation was “back on track again.”All that seems to undermine the rationale for Comey’s firing that Sessions says he relied on — Rosenstein’s memo that charged Comey acted inappropriately in the handling of the Clinton email investigation.It wasn’t until the stars aligned, as the Russia investigation was heating up, that Sessions and Rosenstein could pull the plug, with at least Trump’s blessing. Sessions also admitted that neither he nor Rosenstein, Comey’s direct supervisor, ever talked to Comey about his job performance.And Trump himself undercut the reasoning for firing Comey that Sessions and Rosenstein had presented, saying he was going to fire Comey anyway “regardless of recommendation.”In Mueller’s courtThe questions will continue, especially of everyone who steps before Congress, but Trump allies have proved that even going under oath won’t shed light on the full details surrounding the Russia investigation and whether Trump pressured high-ranking officials to drop it.That is something that may have to be determined by Special Counsel Robert Mueller when he eventually releases his findings.And Trump allies have already been trying to insulate themselves and the president by attempting to delegitimize whatever Mueller comes up with.The irony, of course, is that if the president has done nothing wrong, as he has insisted all along, Mueller is the one guy in Washington who has the credibility to clear him.Copyright 2017 NPR. To see more, visit http://www.npr.org/. Sharelast_img read more

Use App Metrics to analyze HTTP traffic errors network performance of a

first_imgApp Metrics is an open source tool that can be plugged in with the ASP.NET Core applications. It provides real-time insights about how the application is performing and provides a complete overview of the application’s health status. It provides metrics in a JSON format and integrates with the Grafana dashboards for visual reporting. App Metrics is based on .NET Standard and runs cross-platform. It provides various extensions and reporting dashboards that can run on Windows and Linux operating system as well. In this article, we will focus on App Metrics, analyse HTTP traffic, errors, and network performance in .NET Core. This tutorial is an extract from the book C# 7 and .NET Core 2.0 High Performance, authored by Ovais Mehboob Ahmed Khan. Setting up App Metrics with ASP.NET Core We can set up App Metrics in the ASP.NET Core application in three easy steps, which are as follows: Install App Metrics. App Metrics can be installed as NuGet packages. Here are the two packages that can be added through NuGet in your .NET Core project: Install-Package App.Metrics Install-Pacakge App.Metrics.AspnetCore.Mvc Add App Metrics in Program.cs. Add UseMetrics to Program.cs in the BuildWebHost method, as follows: public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseMetrics() .UseStartup() .Build(); Add App Metrics in Startup.cs. Finally, we can add a metrics resource filter in the ConfigureServices method of the Startup class as follows: public void ConfigureServices(IServiceCollection services) { services.AddMvc(options => options.AddMetricsResourceFilter()); } Run your application. Build and run the application. We can test whether App Metrics is running well by using URLs, as shown in the following table. Just append the URL to the application’s root URL: URL Description /metrics Shows metrics using the configured metrics formatter /metrics-text Shows metrics using the configured text formatter /env Shows environment information, which includes the operating system, machine name, assembly name, and version Appending /metrics or /metrics-text to the application’s root URL gives complete information about application metrics. /metrics returns the JSON response that can be parsed and represented in a view with some custom parsing. Tracking middleware With App Metrics, we can manually define the typical web metrics which are essential to record telemetry information. However, for ASP.NET Core, there is a tracking middleware that can be used and configured in the project, which contains some built-in key metrics which are specific to the web application. Metrics that are recorded by the Tracking middleware are as follows: Apdex: This is used to monitor the user’s satisfaction based on the overall performance of the application. Apdex is an open industry standard that measures the user’s satisfaction based on the application’s response time. We can configure the threshold of time, T, for each request cycle, and the metrics are calculated based on following conditions: User Satisfaction Description Satisfactory If the response time is less than or equal to the threshold time (T) Tolerating If the response time is between the threshold time (T) and 4 times that of the threshold time (T) in seconds Frustrating If the respo nse time is greater than 4 times that of the threshold time (T) Response times: This provides the overall throughput of the request being processed by the application and the duration it takes per route within the application. Active requests: This provides the list of active requests which have been received on the server in a particular amount of time. Errors: This provides the aggregated results of errors in a percentage that includes the overall error request rate, the overall count of each uncaught exception type, the total number of error requests per HTTP status code, and so on. POST and PUT sizes: This provides the request sizes for HTTP POST and PUT requests. Adding tracking middleware We can add tracking middleware as a NuGet package as follows: Install-Package App.Metrics.AspNetCore.Tracking Tracking middleware provides a set of middleware that is added to record telemetry for the specific metric. We can add the following middleware in the Configure method to measure performance metrics: app.UseMetricsApdexTrackingMiddleware(); app.UseMetricsRequestTrackingMiddleware(); app.UseMetricsErrorTrackingMiddleware(); app.UseMetricsActiveRequestMiddleware(); app.UseMetricsPostAndPutSizeTrackingMiddleware(); app.UseMetricsOAuth2TrackingMiddleware(); Alternatively, we can also use meta-pack middleware, which adds all the available tracking middleware so that we have information about all the different metrics which are in the preceding code: app.UseMetricsAllMiddleware(); Next, we will add tracking middleware in our ConfigureServices method as follows: services.AddMetricsTrackingMiddleware(); In the main Program.cs class, we will modify the BuildWebHost method and add the UseMetricsWebTracking method as follows: public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseMetrics() .UseMetricsWebTracking() .UseStartup() .Build(); Setting up configuration Once the middleware is added, we need to set up the default threshold and other configuration values so that reporting can be generated accordingly. The web tracking properties can be configured in the appsettings.json file. Here is the content of the appsettings.json file that contains the MetricWebTrackingOptions JSON key: “MetricsWebTrackingOptions”: { “ApdexTrackingEnabled”: true, “ApdexTSeconds”: 0.1, “IgnoredHttpStatusCodes”: [ 404 ], “IgnoredRoutesRegexPatterns”: [], “OAuth2TrackingEnabled”: true }, ApdexTrackingEnabled is set to true so that the customer satisfaction report will be generated, and ApdexTSeconds is the threshold that decides whether the request response time was satisfactory, tolerating, or frustrating. IgnoredHttpStatusCodes contains the list of status codes that will be ignored if the response returns a 404 status. IgnoredRoutesRegexPatterns are used to ignore specific URIs that match the regular expression, and OAuth2TrackingEnabled can be set to monitor and record the metrics for each client and provide information specific to the request rate, error rate, and POST and PUT sizes for each client. Run the application and do some navigation. Appending /metrics-text in your application URL will display the complete report in textual format. Here is the sample snapshot of what textual metrics looks like: Adding visual reports There are various extensions and reporting plugins available that provide a visual reporting dashboard. Some of them are GrafanaCloud Hosted Metrics, InfluxDB, Prometheus, ElasticSearch, Graphite, HTTP, Console, and Text File. We will configure the InfluxDB extension and see how visual reporting can be achieved. Setting up InfluxDB InfluxDB is the open source time series database developed by Influx Data. It is written in the Go language and is widely used to store time series data for real-time analytics. Grafana is the server that provides reporting dashboards that can be viewed through a browser. InfluxDB can easily be imported as an extension in Grafana to display visual reporting from the InfluxDB database. Setting up the Windows subsystem for Linux In this section, we will set up InfluxDB on the Windows subsystem for the Linux operating system. First of all, we need to enable the Windows subsystem for Linux by executing the following command from the PowerShell as an Administrator: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux After running the preceding command, restart your computer. Next, we will install Linux distro from the Microsoft store. In our case, we will install Ubuntu from the Microsoft Store. Go to the Microsoft Store, search for Ubuntu, and install it. Once the installation is done, click on Launch: This will open up the console window, which will ask you to create a user account for Linux OS (Operating System). Specify the username and password that will be used. Run the following command to update Ubuntu to the latest stable version from the bash shell. To run bash, open the command prompt, write bash, and hit Enter: Finally, it will ask you to create an Ubuntu username and password. Specify the username and password and hit enter. Installing InfluxDB Here, we will go through some steps to install the InfluxDB database in Ubuntu: To set up InfluxDB, open a command prompt in Administrator mode and run the bash shell. Execute the following commands to the InfluxDB data store on your local PC: $ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add – $ source /etc/lsb-release $ echo “deb https://repos.influxdata.com/${DISTRIB_ID,,} $ {DISTRIB_CODENAME} stable” | sudo tee /etc/apt/sources.list.d/influxdb.list Install InfluxDB by executing the following command: $ sudo apt-get update && sudo apt-get install influxdb Execute the following command to run InfluxDB: $ sudo influxd Start the InfluxDB shell by running the following command: $ sudo influx It will open up the shell where database-specific commands can be executed. Create a database by executing the following command. Specify a meaningful name for the database. In our case, it is appmetricsdb: > create database appmetricsdb Installing Grafana Grafana is an open source tool used to display dashboards in a web interface. There are various dashboards available that can be imported from the Grafana website to display real-time analytics. Grafana can simply be downloaded as a zip file from http://docs.grafana.org/installation/windows/. Once it is downloaded, we can start the Grafana server by clicking on the grafana-server.exe executable from the bin directory. Grafana provides a website that listens on port 3000. If the Grafana server is running, we can access the site by navigating to http://localhost:3000. Adding the InfluxDB dashboard There is an out-of-the-box InfluxDB dashboard available in Grafana which can be imported from the following link: https://grafana.com/dashboards/2125. Copy the dashboard ID and use this to import it into the Grafana website. We can import the InfluxDB dashboard by going to the Manage option on the Grafana website, as follows: From the Manage option, click on the + Dashboard button and hit the New Dashboard option. Clicking on Import Dashboard will lead to Grafana asking you for the dashboard ID: Paste the dashboard ID (for example, 2125) copied earlier into the box and hit Tab. The system will show the dashboard’s details, and clicking on the Import button will import it into the system: Configuring InfluxDB We will now configure the InfluxDB dashboard and add a data source that connects to the database that we just created. To proceed, we will go to the Data Sources section on the Grafana website and click on the Add New Datasource option. Here is the configuration that adds the data source for the InfluxDB database: Modifying the Configure and ConfigureServices methods in Startup Up to now, we have set up Ubuntu and the InfluxDB database on our machine. We also set up the InfluxDB data source and added a dashboard through the Grafana website. Next, we will configure our ASP.NET Core web application to push real-time information to the InfluxDB database. Here is the modified ConfigureServices method that initializes the MetricsBuilder to define the attribute related to the application name, environment, and connection details: public void ConfigureServices(IServiceCollection services){ var metrics = new MetricsBuilder() .Configuration.Configure( options => { options.WithGlobalTags((globalTags, info) => { globalTags.Add(“app”, info.EntryAssemblyName); globalTags.Add(“env”, “stage”); }); }) .Report.ToInfluxDb( options => { options.InfluxDb.BaseUri = new Uri(“http://127.0.0.1:8086”); options.InfluxDb.Database = “appmetricsdb”; options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10); }) .Build(); services.AddMetrics(metrics); services.AddMetricsReportScheduler(); services.AddMetricsTrackingMiddleware(); services.AddMvc(options => options.AddMetricsResourceFilter());} In the preceding code, we have set the application name app as the assembly name, and the environment env as the stage. http://127.0.0.1:8086 is the URL of the InfluxDB server that listens for the telemetry being pushed by the application. appmetricsdb is the database that we created in the preceding section. Then, we added the AddMetrics middleware and specified the metrics containing the configuration. AddMetricsTrackingMiddleware is used to track the web telemetry information which is displayed on the dashboard, and AddMetricsReportScheduled is used to push the telemetry information to the database. Here is the Configure method that contains UseMetricsAllMiddleware to use App Metrics. UseMetricsAllMiddleware adds all the middleware available in App Metrics: public void Configure(IApplicationBuilder app, IHostingEnvironment env){ if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler(“/Error”); } app.UseStaticFiles(); app.UseMetricsAllMiddleware(); app.UseMvc();} Rather than calling UseAllMetricsMiddleware, we can also add individual middleware explicitly based on the requirements. Here is the list of middleware that can be added: app.UseMetricsApdexTrackingMiddleware();app.UseMetricsRequestTrackingMiddleware();app.UseMetricsErrorTrackingMiddleware();app.UseMetricsActiveRequestMiddleware();app.UseMetricsPostAndPutSizeTrackingMiddleware();app.UseMetricsOAuth2TrackingMiddleware(); Testing the ASP.NET Core App and reporting on the Grafana dashboard To test the ASP.NET Core application and to see visual reporting on the Grafana dashboard, we will go through following steps: Start the Grafana server by going to {installation_directory}\bin\grafana-server.exe. Start bash from the command prompt and run the sudo influx command. Start another bash from the command prompt and run the sudo influx command. Run the ASP.NET Core application. Access http://localhost:3000 and click on the App Metrics dashboard. This will start gathering telemetry information and will display the performance metrics, as shown in the following screenshots: The following graph shows the total throughput in Request Per Minute (RPM), error percentage, and active requests: Here is the Apdex score colorizing the user satisfaction into three different colors, where red is frustrating, orange is tolerating, and green is satisfactory. The following graph shows the blue line being drawn on the green bar, which means that the application performance is satisfactory: The following snapshot shows the throughput graph for all the requests being made, and each request has been colorized with the different colors: red, orange, and green. In this case, there are two HTTP GET requests for the about and contact us pages: Here is the response time graph showing the response time of both requests: If you liked this article and would like to learn more such techniques, go and pick up the full book, C# 7 and .NET Core 2.0 High Performance, authored by Ovais Mehboob Ahmed Khan. Read Next: Get to know ASP.NET Core Web API [Tutorial] How to call an Azure function from an ASP.NET Core MVC application ASP.NET Core High Performancelast_img read more