Обновление
: начиная с .NET 4.5 есть IReadOnlyList
и IReadOnlyCollection
, которые являются ковариантными; Последний в основном IEnumerable
плюс Count
; первый добавляет T this[int index] {get;}
. Следует также отметить, что IEnumerable
ковариантно от .NET 4.0 и далее.
И List
, и ReadOnlyCollection
(через List
) реализуют обе эти функции.
Он может быть только ковариантным, если он имеет только индекс get
, т. е.
public T this[int index] { get; }
Но все основные коллекции имеют {get;set;}
, что делает это неудобным. Я не знаю о том, что этого достаточно, но вы можете обернуть , т. Е. Написать метод расширения:
var covariant = list.AsCovariant();
, который является оберткой вокруг IList
который предоставляет только IEnumerable
и get
индексатор ...? должно быть всего несколько минут работы ...
public static class Covariance
{
public static IIndexedEnumerable AsCovariant(this IList tail)
{
return new CovariantList(tail);
}
private class CovariantList : IIndexedEnumerable
{
private readonly IList tail;
public CovariantList(IList tail)
{
this.tail = tail;
}
public T this[int index] { get { return tail[index]; } }
public IEnumerator GetEnumerator() { return tail.GetEnumerator();}
IEnumerator IEnumerable.GetEnumerator() { return tail.GetEnumerator(); }
public int Count { get { return tail.Count; } }
}
}
public interface IIndexedEnumerable : IEnumerable
{
T this[int index] { get; }
int Count { get; }
}
Спасибо за присоединение configmap и развертывание yaml. Можете ли вы попробовать ниже конфигурации.
Из Обзор плагина Parser . Они предоставили простой пример для получения журналов nginx.
<source>
@type tail
path /path/to/input/file
<parse>
@type nginx
keep_time_key true
</parse>
</source>
Можете ли вы добавить вышеуказанный конфиг в configmap и попробовать. Парсер nginx встроен, ссылка, которую вы предоставили, является объяснением внутренних частей синтаксического анализатора. Если вам не нравится способ выбора / разбора, вы можете написать свой собственный.
В любом случае, используя @type
, мы можем определить тип парсера, который нам нужен.
PS: Сейчас у меня нет никаких настроек, чтобы проверить это. Также у меня мало знаний в fluentd
РЕДАКТИРОВАТЬ:
Я думаю, вы уже знали, как fluentd
получает журналы ... В вашей ссылке на Раздел volumeMounts
, он монтирует хост /var/lib/docker/containers
, который содержит все метаданные контейнера, журналы и т. Д.