RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-255990

Dmytro's questions

Martin Hope
Dmytro
Asked: 2020-03-25 02:58:02 +0000 UTC

ASP.NET Core 3.1 中的指标。在里面收集什么以及如何捡起它们?

  • 2

大家好!

预览:我对收集 .NET Framework 和 Core 中的指标这一主题并不陌生。每天我都在学习新的东西,但脑子里已经在耳边流淌,所以我真的希望得到社区的帮助。

关于系统: ASP.NET Core 应用程序在 Windows Iron 服务器上运行。自然 - 它托管在 IIS 上。在这里(以及在许多其他服务器上)ASP.NET(非核心)应用程序和螺旋服务正在旋转,它们将它们的指标(包括自定义指标)存储在 Windows 性能计数器中,Zabbex 代理和 Telegraf 代理从那里获取它们。存储收集的 InfluxDB 指标。画格拉法纳。

任务 1:与 Windows Performance Counters(以下简称 WPC)交 ASP.NET Core 朋友。甚至可能吗?

任务 2:如果这不可能 - 您需要最可靠的方法来收集指标并在将它们发送到 InfluxDB 之前保存它们,即使在某些步骤出现问题(例如,网络问题、InfluxDB 的服务器崩溃等)。 .)。希望 Zabbex 或 Telegraf 代理参与其中。

Prometeus 服务器不是一种选择,因为当电报和 InfluxDB 可用时,没有人愿意部署另一项服务,但不排除使用 Prometeus 客户端的可能性,因为电报可以读取它。

目前我正在尝试了解是否有可能与电报建立 App Metrics ( https://www.app-metrics.io ) 朋友,但到目前为止还没有成功,因为对 ASP.NET Core 3.0+ 的支持已经还没有在这个库中完全实现,一半的功能是愚蠢的拒绝工作(库 4.0 预览版,还没有文档)。此外,如果电报由于某种原因无法接收到度量值,如何处理这些度量值的问题尚未得到解决(这里,在 Framework-a 的情况下,WPC 提供帮助,它存储度量值并且代理可以接收它们随时)。

App Metrics 可以写入文件(到目前为止它不能,而且我还没有弄清楚 - 它在我弯曲的手中,或者库还没有准备好,但是文件没有创建并且有没有错误),现在我想知道电报是否可以从文件度量中读取(还没有找到答案)。但即使它可以 - 阅读后如何处理这个文件?如果我们一直在写入文件,它会很快增长到一个巨大的大小,并且如果我们启用覆盖模式(AppendMetricsToTextFile = false;) - 我们没有解决如果没有人可以选择保存度量的问题现在起来。

也许您知道如何通过电报与另一个图书馆交朋友?

我很想阅读您的解决方案并感谢任何建议。

上:App Metrics 的最新进展 - 设法打开端点 https://{my-site}/metrics(以 JSON 格式返回指标)和 https://{my-site}/metrics-text(以格式化文本返回指标) . https://{my-site}/env 仍然不起作用。这并不能解决在代理未运行时存储指标的问题,但有些东西已经存在。我要去看看电报。也许代理可以在家里积累指标,直到它发送。

Up:找到允许从 Prometeus 和其他客户端读取指标的电报配置。现在我正在为 Zabbix 代理寻找类似的配置。一切准备就绪后,我将在答案中发布详细信息。

Ap:在 Zabbix 代理配置中有一个以下格式的 UserParameter: UserParameter=<ключ>,<powershell команда/скрипт>,这使得收集数据成为可能,例如,通过对我们的端点的 http 请求/metrics,但这是两难的。我真的不想使用 app-metrics,因为它还没有真正为 ASP.NET Core 3+ 做好准备,而且普罗米修斯的输出是愚蠢的文本。有人知道如何将 prometheus 输出转换为 JSON,以便使用 pavershell 脚本对其进行解析并将正确格式的字符串从脚本返回到 zabbix?

asp.net-core
  • 1 个回答
  • 10 Views
Martin Hope
Dmytro
Asked: 2020-10-01 01:17:52 +0000 UTC

Angular 设置 AsyncPipe 以不断从服务器获取数据(每隔几秒)

  • 0

我最近一直在使用 Angular,但仍然对 RxJs 库没有信心,所以我请求你的帮助。我尝试了很多选项,但没有任何效果。发生的最好的事情 - 我将在下面给出一个例子。

挑战:需要在 Angular Web 应用程序中每 5 秒更新一次数据。对于数据输出,我使用 AsyncPipe。我不知道如何设置它。如果我在 ngOnInit 中接收到一个 Observable 对象一次并将其传递给异步管道,则所有数据都显示成功,但是当服务器上的数据发生变化时,客户端上的数据没有更新(这是合乎逻辑的。你需要拉服务器)。如果我使用计时器,客户端可以看到刷新不断发生。我有一种感觉,不是将新的 Observable 对象分配给 tablesOrders$ 变量,而是需要使用某种 RxJs 运算符而不是这样的计时器,这样我就不会更改对对象的引用,而是更新当前对象使用新数据(类似于间隔,但我无法应用它)。

TS:

    export class TablesComponent implements OnInit, OnDestroy {

          @Input() myLocation$: Observable<Location>;
          @Input() myTables$: Observable<Table[]>;


    locationId: string;
    tablesOrders$: Observable<TableOrders[]> = new Observable<TableOrders[]>();
    private _onDestroy = new Subject<void>();
      loading: boolean = true;

      constructor(private element: ElementRef, public dialog: MatDialog, 
         private operations: TableOperationsService, private router: Router, 
         private snackBar: MatSnackBar) { }

      ngOnInit() {    

        this.myLocation$.pipe(takeUntil(this._onDestroy)).subscribe(result => {

          if (isNullOrUndefined(result.locationId)) { return };

          this.locationId = result.locationId.toString();

          this.updateOrdersTask();

            });

          }
          updateOrdersTask() {
            timer(0,5000).subscribe(_=>{
                let orders$ = this.operations.getOrders(this.locationId)
                   .pipe(takeUntil(this._onDestroy));
//вот здесь мы каждый раз присваимваем переменной новый объект
                this.tablesOrders$ = forkJoin([orders$, this.myTables$])
                    .pipe(timeout(5000), map(result => {
                  let tableOrders: TableOrders[] = [];
                  result[1].forEach(table => {
                let tb = new TableOrders(table,
                result[0].orders.data.filter(o => o.table.id == table.deviceID), result[0].waiter);
                    tableOrders.push(tb);

              });
              this.loading = false;
              return tableOrders;
            }),
              catchError(e => {
                this.loading = false;
                return of(null);
              }));
            return this.tablesOrders$;
          })
      }

HTML:

<mat-progress-bar mode="query" *ngIf="loading"></mat-progress-bar>

<div cdkDropList class="tables-list" (cdkDropListDropped)="drop($event)" *ngIf="!isNullOrUndefined(tablesOrders$ | async); else noTables">
  <div class="table-drag-box"
    *ngFor="let tableOrders of tablesOrders$ | async"
    cdkDragLockAxis="x" cdkDrag cdkDropListData="tableOrders"
    (cdkDragStarted)="swipeStarted($event)" (cdkDragMoved)="swipeMoved($event)"
    (cdkDragReleased)="swipeEnded($event, tableOrders)" (click)="showOrderDetails(tableOrders)">

<!-- здесь в различных элементах я использую переменную tableOrders которую получил из пайпа-->

</div>
</div>
angular2
  • 2 个回答
  • 10 Views
Martin Hope
Dmytro
Asked: 2020-09-09 23:16:29 +0000 UTC

Angular 8. 带有侧滑动作的元素列表

  • 0

我想实现如材料设计中所示的滑动手势功能: https ://material.io/components/lists/#behavior (向下滚动一个屏幕到手势部分)。

不幸的是,我是 Angular 的新手,理论上我可以并且可以手动做这样的事情,但我觉得这将是拐杖上的拐杖 + 非常费力。此外,我怀疑人们很少使用它,以至于没有现成的库。我不否认我以某种方式搜索错误的可能性......

在互联网上,我在 git 上挖出了这个问题,他们要求添加功能: https ://github.com/angular/components/issues/4016

进一步的搜索把我带到了这里:

https://demo.mobiscroll.com/angular/listview/swipe-actions#theme=ios 正是我想要的(甚至是不必要的),但据我了解,这是一种显示所有内容的付费服务他们在一段时间后控制铭文DEMO。当然,我什么都懂,但是真的有这样的开源库吗?是的,也依赖于一些第三方服务,不要风水......

这是另一个开源库,在视觉上非常接近我正在寻找的内容,但是它通过滑动从 DOM 中删除了一个元素(这是合乎逻辑的,因为它被称为滑动删除),我需要挂起事件在向两侧滑动时,不从列表中删除元素。

请帮忙,有没有人做过类似的事情?

我看到了以下的实现(如果没有找到库):

  1. 我们创建一个代表列表项的组件。
  2. 我们将 DragDropModule 连接到它并配置元素只能沿 X 轴移动。
  3. 在 TS 中,我们订阅元素移动事件,当向一个方向或另一个方向移动一定百分比时,我们显示动作图标,当移动完成时,我们将元素返回到它的位置并调用一个或另一个回调函数在初始化期间传递给组件。

关于视图组件有几个想法:

  1. 也许我可以使用自定义占位符(此功能由 DragDropModule 提供)。如果它足够灵活,那就太好了。
  2. 取几个嵌套的 DIV 块。Last Child 将是一个移动元素,我会将动作图标附加到将由滑动和后台任务执行的父母。

剩下的就是制作一个漂亮的元素返回动画。接下来,通过 *ngFor 我们输入一个元素列表。鉴于我的经验不佳,我征求您的意见。一切都正确吗,告诉我如何正确地做。或者告诉我一个涵盖所需功能的库。

编辑:

由于我没有找到解决方案,我决定编写自己的实现。该决定尚未最终决定。我还没有检查是否可以通过输入将链接传递给方法(委托),但如果不能,那么我将进行相应的服务。我仍然不知道如何添加动画,以便在滑动后元素顺利返回到它的位置(请帮助解决这个问题)。在项目中我使用材料库。

TS:

import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'table',
  templateUrl: './table.component.html',
  styleUrls: ['./table.component.scss']
})
export class TableComponent implements OnInit {

  basePosition = {x:0,y:0};

  @Input() tableId: string;
  @Input() leftSwipeMethod: any; //test
  @Input() rightSwipeMethod: any; //test


  offsetPercent: number = 0;

  private elementWidth = 0;
  constructor() { }

  ngOnInit() {
  }

  swipeStarted($event){

    console.log("Started:" ,$event)
  }
  swipeMoved($event){
    this.offsetPercent = Math.abs($event.distance.x / $event.source.element.nativeElement.offsetWidth * 2);
    console.log(this.offsetPercent)

  } 
  swipeEnded($event){
    console.log("Ended:" ,$event);
    this.offsetPercent = 0;
    this.basePosition = {x:0,y:0};
  }
}

风格:

.table-container, .table-drag-box {     
     height: 50px;
}
.table-drag-box{   
     width: 99vw;  
     background-color: white;
}
.table-container{
     width: 100vw;
     background-color: red;
}
.left-icon, .right-icon{
     position: absolute;
     height: inherit;
     display: flex;
     align-items: center;
     opacity: 0;
}
.right-icon{
     right: 0;
}
.fill-remaining-space{
     flex: 1 1 auto;
}

HTML

<div class="table-container">
  <span class="left-icon" [ngStyle]="{'opacity': offsetPercent}">
    <mat-icon>credit_card</mat-icon>
    <span>Send to payment</span>
  </span>
  <span class="fill-remaining-space"></span>
  <span class="right-icon" [ngStyle]="{'opacity': offsetPercent}">
      <mat-icon>close</mat-icon>
      <span>Close all sessons</span>
    </span>
     <div class="table-drag-box" cdkDragLockAxis="x" cdkDrag [cdkDragFreeDragPosition]="basePosition" 
(cdkDragStarted)="swipeStarted($event)" (cdkDragMoved)="swipeMoved($event)" (cdkDragReleased)="swipeEnded($event)">
             <span> {{tableId}}</span>
         </div>     
    </div>

用法:

<div *ngFor="let device of myDevicesObservable | async">

    <table [tableId]="device.id"></table>

</div>
angular2
  • 1 个回答
  • 10 Views
Martin Hope
Dmytro
Asked: 2020-07-05 01:27:38 +0000 UTC

Angular 2/8 + Mafterial 将图标添加到幻灯片切换

  • 0

大家好。

有必要在启用的幻灯片切换中添加一个图标,如下所示:

在此处输入图像描述

理想情况下,图像可以取自资产。标准 API 不提供这样的机会。我发现了一个问题,他们通过 CSS 自定义了开关的外观,但很可惜,没有任何结果。我的尝试看起来像这样:

.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
     background-image: url('http://cdn.onlinewebfonts.com/svg/img_201862.png') !important;
   }

我还尝试将图像放入内容中: url(...)

P / s:不注意颜色或绑定到功能。问题的本质恰恰是在switch里面放了一张图片,因为原​​则上我是做不到的……曾经看到一个类似的实现,但是需要的时候却找不到:(

官方文档链接:https ://material.angular.io/components/slide-toggle/api也许会有所帮助...

提前致谢。

css
  • 1 个回答
  • 10 Views
Martin Hope
Dmytro
Asked: 2020-10-18 22:56:12 +0000 UTC

C# ASP.NET 缓存证书文件在生成 pkpass 格式票证时读取它们

  • 1

大家好。

背景:

我正在开发一个 ASP.NET Web 应用程序项目。门票通过网络应用程序出售,当然,门票可以 PDF 和 pkpass 格式获得。在生成 pkpass 票证时,您需要在票证上附加一个密钥和一个证书(这是 2 个文件)并将其发送给 Apple 进行验证。实际上,NuGet 库就是这样做的。 这是我遇到的问题:

描述原因需要很长时间,但归根结底是我们不得不切换到PassSharp库,因此我们重写了整个请求代码。使用新库时,网站负载很重,一些 pkpass 停止验证(每天 0 到 10 件 +/-),并且它们无法在苹果设备上打开。原因:一天几次,2个用户在同一秒内完成支付,第二个线程无法访问文件。我们得到一个 IOException。代码示例:

    Набрали объект pass (не важно для задачи), далее:
    using (var myStream = new MemoryStream())
        {
        string fileNamePK = String.Format(часть алгоритма генерации имени+ @"{0}.pkpass", часть алгоритма генерации имени; //не спрашивайте
//Проблема вот здесь:
        byte[] appleCert = File.ReadAllBytes(currDir + "//" + appleCert);
        byte[] appleCertKey = File.ReadAllBytes(currDir + "//" + appleKey);

        PassWriter.WriteToStream(pass, myStream,
                new X509Certificate2(appleCert),
                new X509Certificate2(appleCertKey,appleCertPass,  X509KeyStorageFlags.Exportable));
        FileStream file = new FileStream(FileNamePath + "\\" + fileNamePK, FileMode.CreateNew, FileAccess.Write);
        myStream.WriteTo(file);
        file.Close();
        myStream.Close();
        ResultListPass += fileNamePK + ";";
        }

而且发生这种情况的可能性似乎很小......

我发现的所有示例都建议执行以下操作:

FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader fsr = new StreamReader(fs);
byteArrey = fsr.CurrentEncoding.GetBytes(fsr.ReadToEnd());

但是 X509Certificate2 接受一个字节数组,并且类似的方法旨在读取文本信息,无论我如何尝试绕过它(例如,像这样:CurrentEncoding.GetBytes) - 没有结果。此类操作后的字节数组不正确。为了在 byteArrey 之后检查,我什至添加了行 var test = File.ReadAllBytes(filePath); - 字节数组不同。理想的选择是在应用程序级别缓存这些文件并从内存中获取它们,但我不知道该怎么做......显然,这需要在 IIS 级别完成,但同样 - 我不知道不知道怎么做。如果我弄清楚了 - 如何访问它们?请帮助任何可以...

c#
  • 3 个回答
  • 10 Views
Martin Hope
Dmytro
Asked: 2020-06-24 22:11:45 +0000 UTC

c# 从 json 对象的反序列化树创建对象列表

  • 2

我想马上说我是一名新手开发人员,如果问题提出不正确,我深表歉意。我在任何地方都找不到如何访问嵌套的 JSON 对象。

我需要从一个非常大的 JSON 文件中提取某些字符串,将它们组合成一个对象,然后将它们收集到一个对象列表中。写一个带有必要参数的类是行不通的。这是一小段 JSON:

  "result": [
{
  "id": 13,
  "identity": "",
  "way": "reduction",
  "proc": "open",
  "state": "started",
  "title": "Молот Тора",
  "description": "",
bla-bla-bla
]
  "entityType": "bidding",
  "owner": {
    "personId": 38,
    ...
    "subjectRole": "OWNER",
    "personContractorId": 38,
    "contractorId": 38,
    "contractorName": "Фьюри Ник Фф",
    "contractorAvatarId": 49,
    "contractorAvatarUrl": "...",
    "coverFileId": 50,
    "coverFileUrl": "...",
    "contractorType": "PERSON",
    "contractorTypeCompany": ""
  }
},{
  "id": 15,...

这是我遇到问题的地方。我不确定这是否从 JSON 的复制部分可见,但“结果”是根对象,其中嵌套了“所有者”对象,其中是我需要的字段的一部分。为了使用 JSON,我编写了以下类:

    using Newtonsoft.Json;
    using System;

    namespace BackgroundTasks
    {
        [Serializable]
        public sealed class Bid
        {
        [JsonProperty(PropertyName = "entityType")]
        public string EntityType { get; set; }

        [JsonProperty(PropertyName = "title")]
        public string Title { get; set; }

        [JsonProperty(PropertyName = "proc")]
        public string Process { get; set; }

        [JsonProperty(PropertyName = "Id")]
        public int Id { get; set; }

        [JsonProperty(PropertyName = "owner")]
        public object Owner { get; set; }

        public Bid() { }

        public Bid(string entityType, string title, string process, int id, object owner)
        {
            EntityType = entityType;
            Title = title;
            Process = process;
            Id = id;
            Owner = owner;
        }
    }
    [Serializable]
    public sealed class BidOwner
    {
        [JsonProperty(PropertyName = "contractorName")]
        public string ContractorName { get; set; }

        [JsonProperty(PropertyName = "contractorAvatarUrl")]
        public string LogoUrl { get; set; }

        public BidOwner() { }

        public BidOwner(string contractorName, string logoUrl)
        {
            ContractorName = contractorName;
            LogoUrl = logoUrl;
        }
    }
}

当只有 Bid 类时,“所有者”的字段未被拖动(如屏幕截图所示),其中列出了所有字段。

GET 请求,我得到字符串 jsonText 和进一步:

var json = JObject.Parse(jsonText);
List<JToken> result = json["result"].Children().ToList();
        IList<Bid> bidSearchResults = new List<Bid>();
        foreach (JToken res in result)
        {
            Bid searchResult = res.ToObject<Bid>();
            bidSearchResults.Add(searchResult);
        }

屏幕截图:应该是这样的,但有填充字段

截图:结果是这样的

c#
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5