using System; using System.Net; using System.Threading.Tasks; using meilisearch.NET; using meilisearch.NET.Configurations; using meilisearch.NET.example; using meilisearch.NET.Extensions; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; public class Program { public static async Task Main(string[] args) { ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault; IHost host = CreateHostBuilder(args).Build(); var testService = host.Services.GetService(); await host.RunAsync(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, configuration) => { configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); configuration.AddEnvironmentVariables(); configuration.AddCommandLine(args); }) .ConfigureServices((hostContext, services) => { services.AddMeiliSearchService(); services.AddSingleton(); // Add logging configuration services.AddLogging(builder => { builder.ClearProviders(); builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Information); }); }) .UseConsoleLifetime(options => { options.SuppressStatusMessages = true; }); } public class test { private readonly ILogger _logger; public test(MeiliSearchService service, ILogger logger) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); // Wait until Meilisearch is running while (!service.IsRunning()) { _logger.LogInformation("Waiting for Meilisearch to start..."); Task.Delay(1000).Wait(); // Wait for 1 second before checking again } var usage = service.GetResourceUsage(); _logger.LogInformation($"Memory usage: {usage.MemoryUsageBytes} MB"); _logger.LogInformation($"CPU usage: {usage.CpuPercentage} %"); _logger.LogInformation($"Disk read: {usage.DiskReadBytes} MB"); _logger.LogInformation($"Disk write: {usage.DiskWriteBytes} MB"); _logger.LogInformation($"Thread count: {usage.ThreadCount}"); _logger.LogInformation($"Process ID: {usage.ProcessId}"); service.CreateIndex("test"); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); service.AddDocument("test", new document() { Id = Guid.NewGuid(), message = "Hello, Meilisearch!" }); Task.Delay(10000).Wait(); service.SetIndexEnabled("test", false).Wait(); Task.Delay(10000).Wait(); usage = service.GetResourceUsage(); _logger.LogInformation($"Memory usage: {usage.MemoryUsageBytes} MB"); _logger.LogInformation($"CPU usage: {usage.CpuPercentage} %"); _logger.LogInformation($"Disk read: {usage.DiskReadBytes} MB"); _logger.LogInformation($"Disk write: {usage.DiskWriteBytes} MB"); _logger.LogInformation($"Thread count: {usage.ThreadCount}"); _logger.LogInformation($"Process ID: {usage.ProcessId}"); var storage = service.GetIndexStorageUsage("test"); var totalStorage = service.GetTotalStorageUsage(); _logger.LogInformation($"Index storage usage: {storage} MB"); _logger.LogInformation($"Total storage usage: {totalStorage} MB"); Task.Delay(10000).Wait(); service.SetIndexEnabled("test", false).Wait(); _logger.LogInformation("Test service initialized."); } }