Задача: Снять jfr/dump Java-приложения через kubectl cli команду терминала.
Дополнительно процесс описан в ITWiki
1) логинимся
kubectl login https://...:443
Задача: Снять jfr/dump Java-приложения через kubectl cli команду терминала.
Дополнительно процесс описан в ITWiki
1) логинимся
kubectl login https://...:443
| # Эти команды нужны для диагностики, | |
| # когда вы вошли в работающий контейнер | |
| # (например, через kubectl exec) или внутри openshift | |
| # Все процессы (обычно только процессы контейнера) | |
| ps aux | |
| # Детальная информация о процессе оболочки | |
| ps -p $$ | |
| echo "Дефолтный shell: $SHELL" |
| #!/bin/bash | |
| # Проверка наличия аргументов | |
| if [ $# -eq 0 ]; then | |
| echo "Неправильное использование скрипта. Корректный формат: ./repeat.sh --task task.md --every week|month|year" | |
| exit 1 | |
| fi | |
| # Проверка первых двух аргументов | |
| if [ -z "$1" ] || [ -z "$2" ]; then |
| struct LogSizes: Layout { | |
| var label: String | |
| func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { | |
| assert(subviews.count == 1) | |
| print(String(format: "предлагают _%@_: →%.2f x ↓%.2f", label, proposal.width ?? 0, proposal.height ?? 0)) | |
| let result = subviews[0].sizeThatFits(proposal) | |
| print(String(format: "ответ от _%@_: →%.2f x ↓%.2f", label, result.width, result.height)) | |
| return result | |
| } |
| struct DynamicTextColoring: View { | |
| var body: some View { | |
| VStack { | |
| // только с 16 оси | |
| Text("1) Коллеги и платформа \(Text("поздравляют Вас").foregroundColor(.teal))!") | |
| Text(attributedCongratulationString) | |
| } | |
| } | |
| import SwiftUI | |
| // Extension to handle boolean conditions | |
| extension View { | |
| @ViewBuilder | |
| public func `if`<Transform: View>( | |
| _ value: Bool, | |
| transform: (Self) -> Transform | |
| ) -> some View { | |
| if value { |
| extension FocusedValues { | |
| var myKey: Binding<String>? { | |
| get { self[MyFocusKey.self] } | |
| set { self[MyFocusKey.self] = newValue } | |
| } | |
| struct MyFocusKey: FocusedValueKey { | |
| typealias Value = Binding<String> | |
| } | |
| } |
| public extension Double { | |
| func humanFormatted( | |
| groupingSeparator: String = " ", | |
| roundingMode: NumberFormatter.RoundingMode = .halfEven, | |
| fractionDigits: Int = 1, | |
| threshold: Double = 9_999 | |
| ) -> (stringValue: String, postfix: String?) { | |
| let dividerNames: [String?] = [nil, "тыс.", "млн", "млрд", "трлн", "квадрлн"] | |
| struct DefaultPopUps: View { | |
| @State var onSheet = false | |
| @State var onFullScreenCover = false | |
| @State var onPopover = false | |
| @State var onAlert = false | |
| @State var onActionSheet = false | |
| var body: some View { | |
| VStack { | |
| Button(action: { |
| // BlurReplace, Identity, Move, Offset, | |
| // Opacity, Push, Scale, Slide | |
| // Asymmetric | |
| struct ContentView: View { | |
| @State private var showBlurReplace = false | |
| @State private var showIdentity = false | |
| @State private var showMove = false | |
| @State private var showOffset = false | |
| @State private var showOpacity = false | |
| @State private var showPush = false |