Does index size impact document indexing speed, tips? - elasticsearch
I currently want to index 132 Million documents over at my ES services hosted in aws ec2, I was able to do 98 Million, during a week.
I noticed that indexing speed progressively decreased as the index grew in size, its currently sitting at 44GB.
I tried pausing the process, and resuming it from certain points, but the speed was definitely not consistent.
Is there a relation between index size and document indexing speed?
Would appreciate a tip on how to improve index speed in these case, if possible guys, thanks in advance.
Cluster Settings
{
"persistent":{
},
"transient":{
},
"defaults":{
"cluster":{
"routing":{
"use_adaptive_replica_selection":"false",
"rebalance":{
"enable":"all"
},
"allocation":{
"node_concurrent_incoming_recoveries":"2",
"node_initial_primaries_recoveries":"4",
"same_shard":{
"host":"false"
},
"total_shards_per_node":"-1",
"type":"balanced",
"disk":{
"threshold_enabled":"true",
"watermark":{
"low":"85%",
"flood_stage":"95%",
"high":"90%"
},
"include_relocations":"true",
"reroute_interval":"60s"
},
"awareness":{
"attributes":[
]
},
"balance":{
"index":"0.55",
"threshold":"1.0",
"shard":"0.45"
},
"enable":"all",
"node_concurrent_outgoing_recoveries":"2",
"allow_rebalance":"indices_all_active",
"cluster_concurrent_rebalance":"2",
"node_concurrent_recoveries":"2"
}
},
"indices":{
"tombstones":{
"size":"500"
},
"close":{
"enable":"true"
}
},
"nodes":{
"reconnect_interval":"10s"
},
"persistent_tasks":{
"allocation":{
"enable":"all"
}
},
"blocks":{
"read_only_allow_delete":"false",
"read_only":"false"
},
"service":{
"slow_task_logging_threshold":"30s"
},
"name":"roseland",
"info":{
"update":{
"interval":"30s",
"timeout":"15s"
}
}
},
"no":{
"model":{
"state":{
"persist":"false"
}
}
},
"logger":{
"level":"INFO"
},
"bootstrap":{
"memory_lock":"false",
"system_call_filter":"false",
"ctrlhandler":"true"
},
"processors":"2",
"ingest":{
"grok":{
"watchdog":{
"max_execution_time":"1s",
"interval":"1s"
}
}
},
"network":{
"host":[
"_local:ipv4_",
"_eth0:ipv4_"
],
"tcp":{
"reuse_address":"true",
"keep_alive":"true",
"connect_timeout":"30s",
"receive_buffer_size":"-1b",
"no_delay":"true",
"send_buffer_size":"-1b"
},
"bind_host":[
"_local:ipv4_",
"_eth0:ipv4_"
],
"server":"true",
"breaker":{
"inflight_requests":{
"limit":"100%",
"overhead":"1.0"
}
},
"publish_host":[
"_local:ipv4_",
"_eth0:ipv4_"
]
},
"pidfile":"/var/run/elasticsearch/elasticsearch.pid",
"path":{
"data":[
"/data/elasticsearch"
],
"logs":"/var/log/elasticsearch",
"shared_data":"",
"home":"/usr/share/elasticsearch",
"repo":[
]
},
"search":{
"default_search_timeout":"-1",
"highlight":{
"term_vector_multi_value":"true"
},
"default_allow_partial_results":"true",
"max_buckets":"-1",
"low_level_cancellation":"false",
"keep_alive_interval":"1m",
"remote":{
"node":{
"attr":""
},
"initial_connect_timeout":"30s",
"connect":"true",
"connections_per_cluster":"3"
},
"default_keep_alive":"5m",
"max_keep_alive":"24h"
},
"security":{
"manager":{
"filter_bad_defaults":"true"
}
},
"repositories":{
"fs":{
"compress":"false",
"chunk_size":"9223372036854775807b",
"location":""
},
"url":{
"supported_protocols":[
"http",
"https",
"ftp",
"file",
"jar"
],
"allowed_urls":[
],
"url":"http:"
}
},
"action":{
"auto_create_index":"true",
"search":{
"shard_count":{
"limit":"9223372036854775807"
}
},
"destructive_requires_name":"false",
"master":{
"force_local":"false"
}
},
"client":{
"type":"node",
"transport":{
"ignore_cluster_name":"false",
"nodes_sampler_interval":"5s",
"sniff":"false",
"ping_timeout":"5s"
}
},
"xpack":{
"watcher":{
"execution":{
"scroll":{
"size":"0",
"timeout":""
},
"default_throttle_period":"5s"
},
"internal":{
"ops":{
"bulk":{
"default_timeout":""
},
"index":{
"default_timeout":""
},
"search":{
"default_timeout":""
}
}
},
"thread_pool":{
"queue_size":"1000",
"size":"10"
},
"index":{
"rest":{
"direct_access":""
}
},
"history":{
"cleaner_service":{
"enabled":"true"
}
},
"trigger":{
"schedule":{
"ticker":{
"tick_interval":"500ms"
}
}
},
"enabled":"true",
"input":{
"search":{
"default_timeout":""
}
},
"encrypt_sensitive_data":"false",
"transform":{
"search":{
"default_timeout":""
}
},
"stop":{
"timeout":"30s"
},
"watch":{
"scroll":{
"size":"0"
}
},
"require_manual_start":"false",
"actions":{
"bulk":{
"default_timeout":""
},
"index":{
"default_timeout":""
}
}
},
"license":{
"self_generated":{
"type":"basic"
}
},
"logstash":{
"enabled":"true"
},
"notification":{
"hipchat":{
"host":"",
"port":"443",
"default_account":""
},
"pagerduty":{
"default_account":""
},
"email":{
"default_account":"",
"html":{
"sanitization":{
"allow":[
"body",
"head",
"_tables",
"_links",
"_blocks",
"_formatting",
"img:embedded"
],
"disallow":[
],
"enabled":"true"
}
}
},
"reporting":{
"retries":"40",
"interval":"15s"
},
"jira":{
"default_account":""
},
"slack":{
"default_account":""
}
},
"security":{
"dls_fls":{
"enabled":"true"
},
"transport":{
"filter":{
"allow":[
],
"deny":[
],
"enabled":"true"
},
"ssl":{
"enabled":"false"
}
},
"enabled":"true",
"filter":{
"always_allow_bound_address":"true"
},
"encryption":{
"algorithm":"AES/CTR/NoPadding"
},
"audit":{
"outputs":[
"logfile"
],
"index":{
"bulk_size":"1000",
"rollover":"DAILY",
"flush_interval":"1s",
"events":{
"emit_request_body":"false",
"include":[
"ACCESS_DENIED",
"ACCESS_GRANTED",
"ANONYMOUS_ACCESS_DENIED",
"AUTHENTICATION_FAILED",
"REALM_AUTHENTICATION_FAILED",
"CONNECTION_DENIED",
"CONNECTION_GRANTED",
"TAMPERED_REQUEST",
"RUN_AS_DENIED",
"RUN_AS_GRANTED",
"AUTHENTICATION_SUCCESS"
],
"exclude":[
]
},
"queue_max_size":"10000"
},
"enabled":"false",
"logfile":{
"events":{
"emit_request_body":"false",
"include":[
"ACCESS_DENIED",
"ACCESS_GRANTED",
"ANONYMOUS_ACCESS_DENIED",
"AUTHENTICATION_FAILED",
"CONNECTION_DENIED",
"TAMPERED_REQUEST",
"RUN_AS_DENIED",
"RUN_AS_GRANTED"
],
"exclude":[
]
},
"prefix":{
"emit_node_host_name":"false",
"emit_node_name":"true",
"emit_node_host_address":"false"
}
}
},
"authc":{
"anonymous":{
"authz_exception":"true",
"roles":[
],
"username":"_anonymous"
},
"password_hashing":{
"algorithm":"bcrypt"
},
"run_as":{
"enabled":"true"
},
"reserved_realm":{
"enabled":"true"
},
"token":{
"delete":{
"interval":"30m",
"timeout":"-1"
},
"enabled":"false",
"thread_pool":{
"queue_size":"1000",
"size":"1"
},
"timeout":"20m"
}
},
"fips_mode":{
"enabled":"false"
},
"encryption_key":{
"length":"128",
"algorithm":"AES"
},
"http":{
"filter":{
"allow":[
],
"deny":[
],
"enabled":"true"
},
"ssl":{
"enabled":"false"
}
},
"automata":{
"max_determinized_states":"100000"
},
"user":null,
"authz":{
"store":{
"roles":{
"field_permissions":{
"cache":{
"max_size_in_bytes":"104857600"
}
},
"index":{
"cache":{
"ttl":"20m",
"max_size":"10000"
}
},
"cache":{
"max_size":"10000"
}
}
}
}
},
"http":{
"default_connection_timeout":"10s",
"proxy":{
"host":"",
"scheme":"",
"port":"0"
},
"default_read_timeout":"10s",
"max_response_size":"10mb"
},
"monitoring":{
"enabled":"true",
"collection":{
"cluster":{
"stats":{
"timeout":"10s"
}
},
"node":{
"stats":{
"timeout":"10s"
}
},
"indices":[
],
"index":{
"stats":{
"timeout":"10s"
},
"recovery":{
"active_only":"false",
"timeout":"10s"
}
},
"interval":"10s",
"enabled":"false",
"ml":{
"job":{
"stats":{
"timeout":"10s"
}
}
}
},
"history":{
"duration":"168h"
}
},
"graph":{
"enabled":"true"
},
"ml":{
"utility_thread_pool":{
"queue_size":"500",
"size":"80"
},
"max_machine_memory_percent":"30",
"max_open_jobs":"20",
"min_disk_space_off_heap":"5gb",
"autodetect_process":"true",
"datafeed_thread_pool":{
"queue_size":"200",
"size":"20"
},
"node_concurrent_job_allocations":"2",
"max_model_memory_limit":"0b",
"enabled":"true",
"autodetect_thread_pool":{
"queue_size":"80",
"size":"80"
}
},
"rollup":{
"enabled":"true",
"task_thread_pool":{
"queue_size":"4",
"size":"4"
}
},
"sql":{
"enabled":"true"
}
},
"rest":{
"action":{
"multi":{
"allow_explicit_index":"true"
}
}
},
"cache":{
"recycler":{
"page":{
"limit":{
"heap":"10%"
},
"type":"CONCURRENT",
"weight":{
"longs":"1.0",
"ints":"1.0",
"bytes":"1.0",
"objects":"0.1"
}
}
}
},
"reindex":{
"remote":{
"whitelist":[
]
}
},
"max":{
"percent":{
"date":{
"errors":"25"
},
"outoforder":{
"errors":"25"
}
},
"anomaly":{
"records":"500"
}
},
"resource":{
"reload":{
"enabled":"true",
"interval":{
"low":"60s",
"high":"5s",
"medium":"30s"
}
}
},
"thread_pool":{
"force_merge":{
"queue_size":"-1",
"size":"1"
},
"fetch_shard_started":{
"core":"1",
"max":"4",
"keep_alive":"5m"
},
"listener":{
"queue_size":"-1",
"size":"1"
},
"index":{
"queue_size":"200",
"size":"2"
},
"refresh":{
"core":"1",
"max":"1",
"keep_alive":"5m"
},
"generic":{
"core":"4",
"max":"128",
"keep_alive":"30s"
},
"warmer":{
"core":"1",
"max":"1",
"keep_alive":"5m"
},
"search":{
"max_queue_size":"1000",
"queue_size":"1000",
"size":"4",
"auto_queue_frame_size":"2000",
"target_response_time":"1s",
"min_queue_size":"1000"
},
"fetch_shard_store":{
"core":"1",
"max":"4",
"keep_alive":"5m"
},
"flush":{
"core":"1",
"max":"1",
"keep_alive":"5m"
},
"management":{
"core":"1",
"max":"5",
"keep_alive":"5m"
},
"analyze":{
"queue_size":"16",
"size":"1"
},
"get":{
"queue_size":"1000",
"size":"2"
},
"bulk":{
"queue_size":"200",
"size":"2"
},
"estimated_time_interval":"200ms",
"write":{
"queue_size":"200",
"size":"2"
},
"snapshot":{
"core":"1",
"max":"1",
"keep_alive":"5m"
}
},
"index":{
"codec":"default",
"store":{
"type":"",
"fs":{
"fs_lock":"native"
},
"preload":[
]
}
},
"monitor":{
"jvm":{
"gc":{
"enabled":"true",
"overhead":{
"warn":"50",
"debug":"10",
"info":"25"
},
"refresh_interval":"1s"
},
"refresh_interval":"1s"
},
"process":{
"refresh_interval":"1s"
},
"os":{
"refresh_interval":"1s"
},
"fs":{
"refresh_interval":"1s"
}
},
"transport":{
"tcp":{
"reuse_address":"true",
"connect_timeout":"30s",
"compress":"false",
"port":"9300-9400",
"keep_alive":"true",
"receive_buffer_size":"-1b",
"send_buffer_size":"-1b"
},
"bind_host":[
],
"ping_schedule":"-1",
"connections_per_node":{
"recovery":"2",
"state":"1",
"bulk":"3",
"reg":"6",
"ping":"1"
},
"tracer":{
"include":[
],
"exclude":[
"internal:discovery/zen/fd*",
"cluster:monitor/nodes/liveness"
]
},
"type":"security4",
"type.default":"netty4",
"features":{
"x-pack":"true"
},
"host":[
],
"publish_port":"-1",
"tcp_no_delay":"true",
"publish_host":[
],
"netty":{
"receive_predictor_size":"64kb",
"receive_predictor_max":"64kb",
"worker_count":"4",
"receive_predictor_min":"64kb",
"boss_count":"1"
}
},
"script":{
"allowed_contexts":[
],
"max_compilations_rate":"75/5m",
"cache":{
"max_size":"100",
"expire":"0ms"
},
"painless":{
"regex":{
"enabled":"false"
}
},
"max_size_in_bytes":"65535",
"allowed_types":[
]
},
"node":{
"data":"true",
"enable_lucene_segment_infos_trace":"false",
"local_storage":"true",
"max_local_storage_nodes":"1",
"name":"node01",
"id":{
"seed":"0"
},
"attr":{
"xpack":{
"installed":"true"
},
"ml":{
"machine_memory":"4075884544",
"max_open_jobs":"20",
"enabled":"true"
}
},
"portsfile":"false",
"ingest":"true",
"master":"true",
"ml":"true"
},
"indices":{
"cache":{
"cleanup_interval":"1m"
},
"mapping":{
"dynamic_timeout":"30s"
},
"memory":{
"interval":"5s",
"max_index_buffer_size":"-1",
"shard_inactive_time":"5m",
"index_buffer_size":"10%",
"min_index_buffer_size":"48mb"
},
"breaker":{
"request":{
"limit":"60%",
"type":"memory",
"overhead":"1.0"
},
"total":{
"limit":"70%"
},
"accounting":{
"limit":"100%",
"overhead":"1.0"
},
"fielddata":{
"limit":"60%",
"type":"memory",
"overhead":"1.03"
},
"type":"hierarchy"
},
"fielddata":{
"cache":{
"size":"-1b"
}
},
"query":{
"bool":{
"max_clause_count":"1024"
},
"query_string":{
"analyze_wildcard":"false",
"allowLeadingWildcard":"true"
}
},
"admin":{
"filtered_fields":"true"
},
"recovery":{
"recovery_activity_timeout":"1800000ms",
"retry_delay_network":"5s",
"internal_action_timeout":"15m",
"retry_delay_state_sync":"500ms",
"internal_action_long_timeout":"1800000ms",
"max_bytes_per_sec":"40mb"
},
"requests":{
"cache":{
"size":"1%",
"expire":"0ms"
}
},
"store":{
"delete":{
"shard":{
"timeout":"30s"
}
}
},
"analysis":{
"hunspell":{
"dictionary":{
"ignore_case":"false",
"lazy":"false"
}
}
},
"queries":{
"cache":{
"count":"10000",
"size":"10%",
"all_segments":"false"
}
}
},
"plugin":{
"mandatory":[
]
},
"max_running_jobs":"20",
"discovery":{
"type":"zen",
"zen":{
"commit_timeout":"30s",
"no_master_block":"write",
"join_retry_delay":"100ms",
"join_retry_attempts":"3",
"ping":{
"unicast":{
"concurrent_connects":"10",
"hosts":[
],
"hosts.resolve_timeout":"5s"
}
},
"master_election":{
"ignore_non_master_pings":"false",
"wait_for_joins_timeout":"30000ms"
},
"send_leave_request":"true",
"ping_timeout":"3s",
"join_timeout":"60000ms",
"publish_diff":{
"enable":"true"
},
"publish":{
"max_pending_cluster_states":"25"
},
"minimum_master_nodes":"-1",
"hosts_provider":[
],
"publish_timeout":"30s",
"fd":{
"connect_on_network_disconnect":"false",
"ping_interval":"1s",
"ping_retries":"3",
"register_connection_listener":"true",
"ping_timeout":"30s"
},
"max_pings_from_another_master":"3"
},
"initial_state_timeout":"30s"
},
"tribe":{
"name":"",
"on_conflict":"any",
"blocks":{
"metadata":"false",
"read":{
"indices":[
]
},
"write.indices":[
],
"write":"false",
"metadata.indices":[
]
}
},
"http":{
"cors":{
"max-age":"1728000",
"allow-origin":"",
"allow-headers":"X-Requested-With,Content-Type,Content-Length",
"allow-credentials":"false",
"allow-methods":"OPTIONS,HEAD,GET,POST,PUT,DELETE",
"enabled":"false"
},
"max_chunk_size":"8kb",
"compression_level":"3",
"max_initial_line_length":"4kb",
"type":"security4",
"pipelining":"true",
"enabled":"true",
"type.default":"netty4",
"content_type":{
"required":"true"
},
"host":[
],
"publish_port":"-1",
"read_timeout":"0ms",
"max_content_length":"100mb",
"netty":{
"receive_predictor_size":"64kb",
"max_composite_buffer_components":"69905",
"receive_predictor_max":"64kb",
"worker_count":"4",
"receive_predictor_min":"64kb"
},
"tcp":{
"reuse_address":"true",
"keep_alive":"true",
"receive_buffer_size":"-1b",
"send_buffer_size":"-1b"
},
"bind_host":[
],
"reset_cookies":"false",
"max_warning_header_count":"-1",
"max_warning_header_size":"-1b",
"detailed_errors":{
"enabled":"true"
},
"port":"9200-9300",
"max_header_size":"8kb",
"pipelining.max_events":"10000",
"tcp_no_delay":"true",
"compression":"true",
"publish_host":[
]
},
"gateway":{
"recover_after_master_nodes":"0",
"expected_nodes":"-1",
"recover_after_data_nodes":"-1",
"expected_data_nodes":"-1",
"recover_after_time":"0ms",
"expected_master_nodes":"-1",
"recover_after_nodes":"-1"
}
}
}
As #leandrojmp mentioned in the comment, you need to provide much more information for us to provide a specific recommendation, but for the general tip on improving the reindex(one-time) https://opster.com/blogs/improve-elasticsearch-reindex-performance/ and for ongoing indexing performance follow https://opster.com/blogs/improve-elasticsearch-indexing-rate/ .
Related
INDEXER Lake Framework - outcome.status.failure not showing execution error
The following transaction https://explorer.near.org/transactions/CkZYiXB3BEoXNuLDqcn5GjErkXghKGCB47yPyyze4kTf#BPYU8T3o5mdsU4ewG3JdCLRe8ivpsGTehKxkifFAsboD failed whith the following error: { "type": "action", "error": { "type": "functionCallError", "error": { "type": "executionError", "error": "Smart contract panicked: The contract is not initialized" } } } But what I got on the indexer is the following: { "outcome":{ "executionOutcome":{ "blockHash":"8NP4Z2i7CBQzRUxa8CfuummnYZvwfZaCFmif4d6mcgyB", "id":"CkZYiXB3BEoXNuLDqcn5GjErkXghKGCB47yPyyze4kTf", "outcome":{ "executorId":"test1.csandi.near", "gasBurnt":2428211671420, "logs":[ ], "metadata":{ "gasProfile":null, "version":1 }, "receiptIds":[ "GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc" ], "status":{ "SuccessReceiptId":"GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc" }, "tokensBurnt":"242821167142000000000" }, "proof":[ { "direction":"Left", "hash":"BWhmGBmvzbX3WBP1RZQ59DB749sHSV2xS5pNyF6xAbbh" }, { "direction":"Right", "hash":"H4YMDcd9Fh68KTwyPTwYuFb89KhfdGUoxRbBYzDcNAze" }, { "direction":"Right", "hash":"9jv152euKvurdVkDYS5FKiiT4ej6xL1gRYTHoNbjwEZi" }, { "direction":"Right", "hash":"BqQFHzSYzqDE8tMQkJT8PHFGxLmQrkFBcuTqFP4nTjx7" } ] }, "receipt":null }, "transaction":{ "actions":[ { "FunctionCall":{ "args":"eyJpbml0aWFsX3ByaWNlIjoxLjksInNwYWNpbmciOjIsImFscGhhX2lkIjoidXNuIiwiYmV0YV9pZCI6IndyYXAubmVhciIsInN3YXBfZmVlX3JhdGUiOjAuMDAzLCJwcm90b2NvbF90b2xsIjowLjAxfQ==", "deposit":"0", "gas":200000000000000, "methodName":"create_new_pool" } } ], "hash":"CkZYiXB3BEoXNuLDqcn5GjErkXghKGCB47yPyyze4kTf", "nonce":75627675000007, "publicKey":"ed25519:85yAx5mY8DinTWQfMn47cZTHMhZtLRAWZLpazYmetwno", "receiverId":"dev-cliquidity-perk-jorge.near", "signature":"ed25519:1CieS8AUSc7Y3S8By8adJaEXXydXcjvSA1uVXPgrdhkmGPpf5ykA7XWqJGZnDhMtymkp6eWDBEQzsBXkhybAbUV", "signerId":"test1.csandi.near" } } So I would like to know if there is anyway to get the failure message from the indexer?
Look in the next blocks for the corresponding receipt from the SuccessReceiptId (id GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc), and in its execution outcome you will find that status. I cannot recommend more to watch or read the Data Flow in NEAR
FYI, just to follow up and clarify for anyone with this question, after following the above response by "Vlad Frolov", in order to get the Receipt Status, I had to check shard.receiptExecutionOutcomes which will provide the results of the receipts, so I started to track the receipts that I am interested in, in this case for SuccessReceiptId (GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc) "executionOutcome":{ "blockHash":"59F5pES9Myc2VT4JkppE95epCwtGAXYux9okbzpsh95K", "id":"**GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc**", "outcome":{ "executorId":"dev-cliquidity-perk-jorge.near", "gasBurnt":2824274578054, "logs":[ ], "metadata":{ "gasProfile":[ { "cost":"BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"1323840555" }, { "cost":"CONTRACT_LOADING_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"35445963" }, { "cost":"CONTRACT_LOADING_BYTES", "costCategory":"WASM_HOST_COST", "gasUsed":"106584645000" }, { "cost":"READ_MEMORY_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"5219726400" }, { "cost":"READ_MEMORY_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"136847988" }, { "cost":"READ_REGISTER_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"2517165186" }, { "cost":"READ_REGISTER_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"11334630" }, { "cost":"STORAGE_READ_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"56356845750" }, { "cost":"STORAGE_READ_KEY_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"154762665" }, { "cost":"TOUCHING_TRIE_NODE", "costCategory":"WASM_HOST_COST", "gasUsed":"193223471112" }, { "cost":"UTF8_DECODING_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"3111779061" }, { "cost":"UTF8_DECODING_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"9038994849" }, { "cost":"WASM_INSTRUCTION", "costCategory":"WASM_HOST_COST", "gasUsed":"11928316488" }, { "cost":"WRITE_MEMORY_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"2803794861" }, { "cost":"WRITE_MEMORY_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"313233780" }, { "cost":"WRITE_REGISTER_BASE", "costCategory":"WASM_HOST_COST", "gasUsed":"2865522486" }, { "cost":"WRITE_REGISTER_BYTE", "costCategory":"WASM_HOST_COST", "gasUsed":"437179860" } ], "version":1 }, "receiptIds":[ "BPYU8T3o5mdsU4ewG3JdCLRe8ivpsGTehKxkifFAsboD" ], **"status":{ "Failure":{ "ActionError":{ "index":0, "kind":{ "FunctionCallError":{ "ExecutionError":"Smart contract panicked: The contract is not initialized" } } } }** }, "tokensBurnt":"282427457805400000000" }, "proof":[ { "direction":"Left", "hash":"5j1RhLnf5jGChUPxU9CPNbAGwSn6VnzBw7taJe5vSnYD" }, { "direction":"Right", "hash":"AJ2kARUcYAkzsL3xmw4jAETZ61jtQuswf7RvhSxscKCR" }, { "direction":"Left", "hash":"9vXQjFdTaQw5XjUKsRK6N3WFCg5zMVca5Ze2Qqznn3AM" } ] }, "receipt":{ "predecessorId":"test1.csandi.near", "receipt":{ "Action":{ "actions":[ { "FunctionCall":{ "args":"eyJpbml0aWFsX3ByaWNlIjoxLjksInNwYWNpbmciOjIsImFscGhhX2lkIjoidXNuIiwiYmV0YV9pZCI6IndyYXAubmVhciIsInN3YXBfZmVlX3JhdGUiOjAuMDAzLCJwcm90b2NvbF90b2xsIjowLjAxfQ==", "deposit":"0", "gas":200000000000000, "methodName":"create_new_pool" } } ], "gasPrice":"346069590", "inputDataIds":[ ], "outputDataReceivers":[ ], "signerId":"test1.csandi.near", "signerPublicKey":"ed25519:85yAx5mY8DinTWQfMn47cZTHMhZtLRAWZLpazYmetwno" } }, "receiptId":"GrXdFKA9byvCmxGiQkGc9iaFn88FfePk4tfJhvcTGMwc", "receiverId":"dev-cliquidity-perk-jorge.near" } } And as you can see in the json response,the following status: "status":{ "Failure":{ "ActionError":{ "index":0, "kind":{ "FunctionCallError":{ "ExecutionError":"Smart contract panicked: The contract is not initialized" } } } } Anyway to fully understand how transactions/receipts work this document helped a lot.
Input.ChoiceSet inside Action.ShowCard card not working #361
We are using https://www.npmjs.com/package/botbuilder to build a bot for Microsoft Teams. We have the following payload to create a card, which has an Input.ChoiceSet inside an Action.ShowCard card. It works fine when I preview the card from the bar but it doesn't work after I send the card. Sometimes if I restart the MST client it works when I click on a card for the first time but then it doesn't work after that. Sometimes it never works, only from the preview. It does work fine on Android but it doesn't work on Linux, Mac or web clients. Here is a demo of the issue, https://www.loom.com/share/7cfec55b587941899cd66e1d896df065 And here is the payload. Try the Click me! button, which should display a dropdown. { "type":"message", "attachments":[ { "contentType":"application/vnd.microsoft.card.adaptive", "content":{ "$schema":"http://adaptivecards.io/schemas/adaptive-card.json", "type":"AdaptiveCard", "version":"1.2", "actions":[ { "type":"Action.OpenUrl", "title":"Action 1", "url":"https://my.website.com" }, { "type":"Action.Submit", "title":"Action 2", "data":{ "command":"action 1", "data":"asdasd" } }, { "type":"Action.ShowCard", "title":"Click me!", "card":{ "type":"AdaptiveCard", "version":"1.0", "body":[ { "type":"Input.ChoiceSet", "id":"SelectUser", "style":"compact", "value":"1", "choices":[ { "title":"User 1", "value":"1" }, { "title":"User 2", "value":"2" }, { "title":"User 3", "value":"3" } ], "height":"stretch", "wrap":true, "isMultiSelect":false } ], "actions":[ { "type":"Action.Submit", "title":"Action 3.1", "data":{ "command":"action 3.1", "data":"asdasd" } } ] } }, { "type":"Action.ShowCard", "title":"Action 4", "card":{ "type":"AdaptiveCard", "body":[ { "type":"Input.Text", "label":"Enter comment", "style":"text", "id":"text", "isMultiline":true, "placeholder":"Enter your comment" } ], "actions":[ { "type":"Action.Submit", "title":"Save", "data":{ "command":"save", "data":"asdasd" } } ] } } ], "body":[ { "type":"TextBlock", "size":"medium", "weight":"bolder", "text":"text... text... text", "wrap":true }, { "type":"ColumnSet", "columns":[ { "type":"Column", "width":"auto", "items":[ { "type":"Image", "style":"Person", "url":"https://avatar.com/avatar.png", "size":"small" } ] }, { "type":"Column", "width":"stretch", "items":[ { "type":"TextBlock", "weight":"lighter", "text":"text... text... text", "wrap":true }, { "type":"TextBlock", "spacing":"None", "text":"text... text... text", "isSubtle":true, "wrap":true } ] } ] }, { "type":"Container", "items":[ { "columns":[ { "spacing":"small", "width":"auto", "verticalContentAlignment":"Center", "type":"Column", "selectAction":{ "targetElements":[ "fields-content", "showFields", "hideFields" ], "type":"Action.ToggleVisibility", "title":"expand" }, "items":[ { "type":"TextBlock", "id":"showFields", "horizontalAlignment":"Left", "color":"Accent", "text":"Show fields", "wrap":true }, { "type":"TextBlock", "id":"hideFields", "horizontalAlignment":"Left", "color":"Accent", "text":"Hide fields", "wrap":true, "isVisible":false } ] } ], "type":"ColumnSet" }, { "id":"fields-content", "isVisible":false, "type":"Container", "items":[ { "type":"FactSet", "facts":[ { "title":"title", "value":"value" } ] } ] } ] } ] } } ] }
Currently we don't have the sample code in nodejs.Agree with you problem in using node library. I too tested with your payload.
Using Dynamic variables in aggregate query from Vega (in Kibana) to ElasticSearch
We have a report that fetches data from elasticsearch and displays them as buckets. We want to show a band, customers and profit amount for each band. The idea is that we should give a band size parameter and then Vega should create 5 buckets for that when querying the data. If I mention the band size to be 50, then vega will pass this on in the query and create buckets 0-50, 51 to 100, 101 to 150, 151 to 200 and 200+. I am really struggling with this a lot and can not make it work. I am pasting the vega script here that works with hard coded values but when it comes to doing it through signals, I have not reached any clue at all. I would like to use the value from signal to define to band parameter. Please help. { "$schema":"https://vega.github.io/schema/vega/v4.json", "data":[ { "name":"SalesData", "url":{ "index":"orderaggregates", "body":{ "size":0, "aggs":{ "bands":{ "range":{ "field":"total_sales", "ranges":[ { "from":0, "to":50 }, { "from":50.01, "to":100 }, { "from":100.01, "to":150 }, { "from":150.01, "to":200 }, { "from":200.01 } ] }, "aggs":{ "total_sales":{ "sum":{ "field":"total_sales" } }, "customers":{ "cardinality":{ "field":"user_id" } }, "confirmed_orders":{ "sum":{ "field":"confirmedorders" } }, "cost_total":{ "sum":{ "field":"cost_total" } }, "shipping_collected":{ "sum":{ "field":"freightcollected" } }, "shipping_paid":{ "sum":{ "field":"freight_paid" } } } } } } }, "format":{ "property":"aggregations.bands.buckets" }, "transform":[ { "type":"project", "fields":[ "key", "doc_count", "customers.value", "cost_total.value", "total_sales.value" ], "as":[ "range", "orders", "customers", "costs", "sales" ] }, { "type":"identifier", "as":"id" }, { "type":"formula", "as":"y", "expr":"datum.id * 30" }, { "type":"formula", "as":"orders", "expr":"format(datum.orders,',.0f')" }, { "type":"formula", "as":"customers", "expr":"format(datum.customers,',.0f')" }, { "type":"formula", "as":"costs", "expr":"format(datum.costs,'$,.0f')" }, { "type":"formula", "as":"sales", "expr":"format(datum.sales,'$,.0f')" } ] } ], "signals":[ { "name":"Group", "value":40, "bind":{ "input":"range", "min":10, "max":100, "step":10 } }, { "name":"GroupSize", "update":"Group/2" } ], "marks":[ { "from":{ "data":"SalesData" }, "type":"text", "encode":{ "enter":{ "fill":{ "value":"#000" }, "text":{ "field":"range" }, "x":{ "value":50 }, "y":{ "field":"y" } }, "update":{ "opacity":{ "value":1 }, "fontSize":{ "signal":"GroupSize" } }, "hover":{ "opacity":{ "value":0.5 } } } }, { "from":{ "data":"SalesData" }, "type":"text", "encode":{ "enter":{ "fill":{ "value":"#000" }, "text":{ "field":"customers" }, "x":{ "value":250 }, "y":{ "field":"y" } }, "update":{ "opacity":{ "value":1 }, "fontSize":{ "signal":"GroupSize" } }, "hover":{ "opacity":{ "value":0.5 } } } }, { "from":{ "data":"SalesData" }, "type":"text", "encode":{ "enter":{ "fill":{ "value":"#000" }, "text":{ "field":"orders" }, "x":{ "value":350 }, "y":{ "field":"y" } }, "update":{ "opacity":{ "value":1 }, "fontSize":{ "signal":"GroupSize" } }, "hover":{ "opacity":{ "value":0.5 } } } }, { "from":{ "data":"SalesData" }, "type":"text", "encode":{ "enter":{ "fill":{ "value":"#000" }, "text":{ "field":"sales" }, "x":{ "value":450 }, "y":{ "field":"y" } }, "update":{ "opacity":{ "value":1 }, "fontSize":{ "signal":"GroupSize" } }, "hover":{ "opacity":{ "value":0.5 } } } } ] }
You have to change the structure. Move the task which is done in your query to data's transform section where you can use the signals: Query all relevant data Transform your data with usage of your signal "Group" to the bins (e.g. calculate "extend" and "bin" transforms similar to this: http://blog.wafrat.com/building-a-log-scaled-histogram-of-aaves-loans-in-vega/)
Adaptive Cards Input Toggle(CheckBox) IOS issue
We have created bot using Microsoft bot-framework which is integrated to Microsoft teams. We have created few adaptive cards for interactive conversation with bot. One of the Adaptive card is causing design issue in IPhone X Microsoft Teams Application. We used Adaptive card template for building this card which displays the list of Tasks along with status of the task. Each task has Input.Toggle (Checkbox) and at the end a button will be displayed. When Checkbox's are selected and button is clicked We are sending new card with task details where they can edit the status and so on. Please find the JSON data below. Card Payload Editor Json Data: { "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "Container", "border": true, "items": [ { "$data": "{properties}", "type": "ColumnSet", "columns": [ { "type": "Column", "width": "auto", "items": [ { "id": "{id}", "type": "Input.Toggle", "title": " ", "value": "false", "wrap": false } ] }, { "type": "Column", "width": "stretch", "items": [ { "type": "Container", "items": [ { "type": "FactSet", "facts": [ { "$data": "{peers}", "title": "{key}", "value": "{value}" } ] } ], "style": "emphasis" } ] } ] } ] } ], "actions": [ { "type": "Action.Submit", "title": "{actionSubmitTitle}", "horizontalAlignment": "center" } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json" } Sample Data Editor: "properties":[ { "id":"InputToggle1", "peers":[ { "key":"Project", "value":"' .$task->project_name. '" }, { "key":"Task", "value":"'.$task->id.' - '.$task->heading.'" }, { "key":"Status", "value":"'.$task->board_column.'" } ] }, { "id":"InputToggle2", "peers":[ { "key":"Project", "value":"' .$task->project_name. '" }, { "key":"Task", "value":"'.$task->id.' - '.$task->heading.'" }, { "key":"Status", "value":"'.$task->board_column.'" } ] }, { "id":"InputToggle3", "peers":[ { "key":"Project", "value":"' .$task->project_name. '" }, { "key":"Task", "value":"'.$task->id.' - '.$task->heading.'" }, { "key":"Status", "value":"'.$task->board_column.'" } ] }, { "id":"InputToggle4", "peers":[ { "key":"Project", "value":"' .$task->project_name. '" }, { "key":"Task", "value":"'.$task->id.' - '.$task->heading.'" }, { "key":"Status", "value":"'.$task->board_column.'" } ] } ], "actionSubmitTitle":"Update Timesheet" } The InputToggle is inside the column set with width as auto and it is perfectly rendering in Microsoft Desktop and Android App but whereas in IOS app it is not showing When we set the width property to stretch, InputToggle is getting displayed in IOS App in big size but in Desktop App and Android App the column is pushing and occupying much space. Please help me so that we can display the Input.Toggle in IOS Microsoft Teams without breaking the design in Desktop and Android Teams App. Edit: Adding final JSON sent to the bot. The columns in the column set will be changed dynamically based on the ask list in database. { "type":"AdaptiveCard", "version":"1.0", "body":[ { "type":"Container", "border":true, "items":[ { "type":"ColumnSet", "columns":[ { "type":"Column", "width":"auto", "items":[ { "id":"inputToggle1", "type":"Input.Toggle", "title":" ", "value":"false", "wrap":false } ] }, { "type":"Column", "width":"stretch", "items":[ { "type":"Container", "items":[ { "type":"FactSet", "facts":[ { "title":"Project", "value":"Project 1" }, { "title":"Task", "value":"Task 1" }, { "title":"Status", "value":"Pending" } ] } ], "style":"emphasis" } ] } ] }, { "type":"ColumnSet", "columns":[ { "type":"Column", "width":"auto", "items":[ { "id":"inputToggle2", "type":"Input.Toggle", "title":" ", "value":"false", "wrap":false } ] }, { "type":"Column", "width":"stretch", "items":[ { "type":"Container", "items":[ { "type":"FactSet", "facts":[ { "title":"Project", "value":"Project 1" }, { "title":"Task", "value":" Task 2" }, { "title":"Status", "value":"Completed" } ] } ], "style":"emphasis" } ] } ] } ] } ], "actions":[ { "type":"Action.Submit", "title":"Update Timesheet", "horizontalAlignment":"center" } ], "$schema":"http://adaptivecards.io/schemas/adaptive-card.json" } Thank you.
For completion, this was caused by a bug and is tracked as an Github Issue here: https://github.com/microsoft/AdaptiveCards/issues/4052#
NLog: LayoutRenderer cannot be found: 'aspnet-user-identity
I try to implement NLog into my .NET Core Api web service. I want to log to an Oracle database. All works well through an nlog.config XML file. But the goal is to implement NLog config into appsettings.json and here problem occurs. I get the error set in title: LayoutRenderer cannot be found: 'aspnet-user-identity My config file is like this : "NLog": { "autoReload": true, "throwConfigExceptions": true, "internalLogLevel": "info", "internalLogFile": "c:/app/log/dev/internal-appsetting-nlog.txt", "extensions": { "NLog.Extensions.Logging": { "assembly": [ "NLog.Extensions.Logging", "NLog.Web.AspNetCore" ] } }, "variables": { "var_logdir": "c:/app/log/dev" }, "default-wrapper": { "type": "AsyncWrapper", "overflowAction": "Block" }, "targets": { "all-file": { "type": "File", "fileName": "${var_logdir}/nlog-all-${shortdate}.log", "layout": { "type": "JsonLayout", "Attributes": [ { "name": "timestamp", "layout": "${date:format=o}" }, { "name": "level", "layout": "${level}" }, { "name": "logger", "layout": "${logger}" }, { "name": "message", "layout": "${message:raw=true}" }, { "name": "properties", "encode": false, "layout": { "type": "JsonLayout", "includeallproperties": "true" } } ] } }, "db": { "type": "Database", "commandText": "INSERT INTO logtable (LOGLEVEL,LOGGER,MESSAGE,MACHINENAME,USERNAME,CALLSITE, THREADID,EXCEPTIONMESSAGE,STACKTRACE,SESSIONID) VALUES (:pLEVEL,:pLOGGER,:pMESSAGE,:pMACHINENAME, :pCALLSITE,:pTHREADID,:pEXCEPTIONMESSAGE,:pSTACKTRACE)", "parameters": [ { "name": "#pLEVEL", "layout": "${level}" }, { "name": "#pLOGGER", "layout": "${logger}" }, { "name": "#pMESSAGE", "layout": "${message}" }, { "name": "#pMACHINENAME", "layout": "${machinename}" }, { "name": "#pUSERNAME", "layout": "${aspnet-user-identity}" }, { "name": "#pCALLSITE", "layout": "${callsite:filename=true}" }, { "name": "#pTHREADID", "layout": "${threadid}" }, { "name": "#pEXCEPTIONMESSAGE", "layout": "${exception}" }, { "name": "#pSTACKTRACE", "layout": "${stacktrace}" }, { "name": "#pSESSIONID", "layout": "${aspnet-sessionid}" } ], "dbProvider": "Oracle.ManagedDataAccess.Client.OracleConnection, Oracle.ManagedDataAccess", "connectionString": "xxxxxxxxxxxx" } }, "rules": [ { "logger": "*", "minLevel": "Trace", "writeTo": "all-file" }, { "logger": "*", "minLevel": "Trace", "writeTo": "db" }, { "logger": "Microsoft.*", "maxLevel": "Info", "final": true } ] }, The internal debugger reports: 2019-10-09 16:48:48.6665 Info Adding target AsyncTargetWrapper(Name=all-file) 2019-10-09 16:48:48.7859 Warn Error when setting property 'Layout' on 'NLog.Targets.DatabaseParameterInfo' Exception: System.ArgumentException: LayoutRenderer cannot be found: 'aspnet-user-identity'. Is NLog.Web not included? at NLog.Config.Factory`2.CreateInstance(String itemName) at NLog.Layouts.LayoutParser.GetLayoutRenderer(ConfigurationItemFactory configurationItemFactory, String name) at NLog.Layouts.LayoutParser.ParseLayoutRenderer(ConfigurationItemFactory configurationItemFactory, SimpleStringReader stringReader) at NLog.Layouts.LayoutParser.CompileLayout(ConfigurationItemFactory configurationItemFactory, SimpleStringReader sr, Boolean isNested, String& text) at NLog.Layouts.SimpleLayout.set_Text(String value) at NLog.Internal.PropertyHelper.TryNLogSpecificConversion(Type propertyType, String value, Object& newValue, ConfigurationItemFactory configurationItemFactory) at NLog.Internal.PropertyHelper.SetPropertyFromString(Object obj, String propertyName, String value, ConfigurationItemFactory configurationItemFactory) Error occurs on ${aspnet-sessionid}. If I comment out both layout, everything works well. I found different things on GitHub issue report but all I tried was a fail. Could someone help?
The unknown aspnet-user-identity is probably an issue with your extensions: "extensions": [ { "assembly": "NLog.Extensions.Logging" }, { "assembly": "NLog.Web.AspNetCore" } ], Could you try the above suggestion? P.S. Updated the wiki to include example of multiple "extensions"